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

Convert a vector into a list, each element in the vector as an element in the list

提问人:qed 提问时间:5/4/2013 最后编辑:zx8754qed 更新时间:9/7/2018 访问量:91335

问:

向量是这样的:

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
R-常见问题

评论


答:

145赞 qed 5/4/2013 #1

很简单,只需这样做:

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

评论

0赞 Oleg Melnikov 11/20/2017
仅供参考:它似乎忽略了 中的 NULL 值。as.list(c(0, NULL,1))
1赞 Matt W. 1/3/2018
@OlegMelnikov你不能传递到一个向量中,如果这是你要找的,你可以传递。NULLc()NA
12赞 John 6/30/2018 #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