【问题标题】:Convert a vector into a list, each element in the vector as an element in the list将向量转换为列表,向量中的每个元素作为列表中的一个元素
【发布时间】:2013-05-03 16:47:44
【问题描述】:

向量是这样的:

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 r-faq


    【解决方案1】:

    简单,只需这样做:

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

    【讨论】:

    • 仅供参考:它似乎忽略了 as.list(c(0, NULL,1)) 中的 NULL 值。
    • @OlegMelnikov 你不能将NULL 传递给一个向量c(),你可以传递NA,如果那是你要找的。​​span>
    【解决方案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
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-03-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-10-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多