簡體   English   中英

從R中的三個向量創建一個命名列表列表

[英]Create a list of named lists from three vectors in R

我正在嘗試將三個向量組合成一個列表列表,其中一個向量是列表的索引。

特定

names<-c("a","b","c","d")
id1<-c(1,1,2,2)
id2<-c(3,4,5,6)

我想建立一個如下所示的列表:

mylist <- list("a" = list(1,3), "b" = list(1,4), "c" = list(2,5), "d" = list(2,6))

我想你正在尋找Map

l <- Map(list, id1, id2) # thanks to @thelatemail for suggested improvement
names(l) <- names
identical(mylist, l)
# TRUE

你可以使用mapplyc函數來連接元素。 setNames在函數返回時方便地命名結果:

ll <- setNames( mapply( c , id1 , id2 , SIMPLIFY = FALSE ) , names )

#$a
#[1] 1 3

#$b
#[1] 1 4

#$c
#[1] 2 5

#$d
#[1] 2 6

或者也許利用mapply()的' USE.NAMES參數,你可以命名第一個向量來做到這一點,在沒有setNames情況下實現相同的結果:

names(id1) <- names
mapply( c , id1 , id2 , SIMPLIFY = FALSE )

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM