有沒有一種方法可以在兩個向量上使用mapply來構造一個命名列表?第一個向量的類型爲character
,包含用於列表的名稱,而第二個包含值。從兩個向量(名稱,值)創建一個命名列表
到目前爲止,我唯一的解決辦法是:
> dummyList = list()
> addToList <- function(name, value) {
+ dummyList[[name]] <- value
+ }
> mapply(addToList, c("foo", "bar"), as.list(c(1, 2))
$foo
`1`
$bar
`2`
這似乎是一個虛構的解決方案,但我想不出如何做到這一點並非如此。我與它的問題是:
它需要的
dummyList
創建即使dummyList
從未改變,是調用mapply
後空單。如果數字向量
c(1, 2)
未被轉換爲列表,則調用mapply
的結果是雙命名的向量。
要解決問題2,我永遠可以調用mapply
兩個向量,然後調用的結果as.list
,但是看起來應該有辦法直接創造與價值的是一個清單向量。
謝謝。我不知道'setNames'函數,並且完美適合我的目標。出於好奇,有沒有辦法用你知道的「lapply」來做到這一點? 「lapply」可以返回列表似乎是可能的。 –
你是什麼意思「使用'lapply'」?你想用'lapply'執行相同的任務嗎? (如果是這樣,爲什麼?作爲一個編程練習?更多的上下文將是有用的。)如果你想做其他事情,編輯你的問題或問一個新的? –