【问题标题】:How to split a list in R? [closed]如何在R中拆分列表? [关闭]
【发布时间】:2020-08-09 21:21:53
【问题描述】:

我有一个 R 列表,其中所有值都位于第一个位置(即列表 [1]),而我希望所有值均匀分布在整个列表中(列表 [1] 包含一个值,列表 [ 2] 包含下一个等)。我一直在尝试将一个位置的值拆分为单独的值(每个值都是由空格分隔的字符串)但没有成功。

下面是我所处的那种情况的示意图。

假设“test”是 R 中一个列表的名称。Test 是一个长度为 1 的对象,如果您在控制台中输入 test[1],则输出是数千个值,格式如下: [1] "value1" "value2" "value3" ...等

现在我想以某种方式拆分 list[1] 的内容,以便每个分隔的字符串位于单独的位置,所以 test[1] 是“value1”,test[2] 是“value2”,等等。我已经四处寻找并尝试了许多声称的解决此类问题的方法(最近的示例:List to integer or double in R),但到目前为止对我没有任何帮助。

【问题讨论】:

  • 这能回答你的问题吗? R: split elements of a list into sublists
  • 您还可以通过test[[i]][j] 访问每个元素,其中 i 是列表索引,j 是 i 列表索引 i 处的向量索引的索引。如果你只有一个列表元素,你可以unlist(test)
  • @at80 这对我来说变成了噩梦。无论我尝试什么(并且我在这里尝试了很多很多很多方法),总是会产生同样的结果:如果我尝试只选择这个列表中的第一个元素,它总是会向我显示每个元素。当我按照您的建议尝试使用“do.call(c,test)”时,这也成立。
  • test1 <- as.list(test[[1]]) 是您正在寻找的。现在试试test1[[1]]
  • class(test) 返回什么?

标签: r


【解决方案1】:

这里有一个简单的方法:

l1 <- list(l1 = round(rnorm(100, 0, 5), 0))
v <- unlist(l1)
l2 <- as.list(v)

l1length 是 1,l2length 是 100。这就是你所追求的吗?

【讨论】:

    猜你喜欢
    • 2017-05-20
    • 2016-04-06
    • 1970-01-01
    • 2022-11-21
    • 2016-06-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多