2つのベクトルにmapplyを使用して名前付きリストを作成する方法はありますか?最初のベクトルはタイプcharacter
であり、リストに使用される名前を含み、2番目の値は値を含みます。2つのベクトル(名前、値)から名前付きリストを作成
はこれまでのところ、私が唯一の解決策は以下のとおりです。
> dummyList = list()
> addToList <- function(name, value) {
+ dummyList[[name]] <- value
+ }
> mapply(addToList, c("foo", "bar"), as.list(c(1, 2))
$foo
`1`
$bar
`2`
これはかなり不自然なソリューションのように思えるが、私はそうでない場合はそれを行う方法を見つけ出すことはできません。私はそれを持っている問題は次のとおりである:それはmapply
への呼び出しの後に空のリストをdummyList
が変更されることはありませんにもかかわらずdummyList
の作成を必要としている
。
数値ベクトル
c(1, 2)
がリストに変換されない場合、mapply
の呼び出しの結果は、doublesの名前付きベクトルになります。
問題2を回避するために、私はいつもちょうど2つのベクトルにmapply
を呼び出し、その結果にas.list
を呼び出しますが、直接、値がでているとのリストを作成する方法があるべきように思えることができますベクター。
ありがとうございます。私は 'setNames'関数を認識しておらず、私の目標に完全に合っています。好奇心のために、あなたが知っている 'lapply'を使ってそれを行う方法はありますか? 'lapply'がリストを返すことができるようです。 –
「lapplyを使って」とはどういう意味ですか? 'lapply'を使って同じタスクを実行しますか? (もしそうなら、なぜ?プログラミングの練習として、より多くの文脈が役に立つでしょう。)他に何かしたいのですが、あなたの質問を編集するか、新しい質問をしますか? –