100

向量是这样的:

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
4

2 回答 2

136

很简单,只要这样做:

as.list(c(1,2,3))
于 2013-05-03T16:54:30.300 回答
10

已接受答案的补充:如果您想将向量添加到更长列表中的其他元素, 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
于 2018-06-30T00:33:23.643 回答