将向量转换为列表,向量中的每个元素作为列表中的元素

时间:2013-05-03 16:47:44

标签: r r-faq

矢量是这样的:

c(1,2,3)
#[1] 1 2 3

我需要这样的东西:

list(1,2,3)
#[[1]]
#[1] 1
#
#[[2]]
#[1] 2
#
#[[3]]
#[1] 3

我试过了:

list(c(1,2,3))
#[[1]]
#[1] 1 2 3

2 个答案:

答案 0 :(得分:94)

简单,只需这样做:

as.list(c(1,2,3))

答案 1 :(得分:2)

已接受答案的补充:如果要将向量添加到较长列表中的其他元素,则as.list()可能不会产生您所期望的结果。例如:您要添加2个文本元素和一个包含5个数字元素(1:5)的向量,以构成一个长度为7个元素的列表。

L<-list("a","b",as.list(1:5)) 

糟糕:它返回包含3个元素的列表,第三个元素具有5个元素的子列表;不是我们想要的!解决方案是加入两个单独的列表:

L1<-list("a","b")
L2<-as.list(1:5)
L<-c(L1,L2) #7 elements, as expected