【问题标题】:Split list by ID and store results into separate vectors按 ID 拆分列表并将结果存储到单独的向量中
【发布时间】:2017-05-01 00:40:40
【问题描述】:

给定一个列表,我将其转换为数据框,提供以下结构:

df <- data.frame(list('value' = c(3.166667,3.166667,3.416667,3.291667,3.00,2.75), 'ID' = c(511,511,532,532,556,556)))

$value
[1] 3.166667 3.166667 3.416667 3.291667 3.000000 2.750000

$ID
[1] 511 511 532 532 556 556

我需要将ID 的观察结果拆分为向量。但是,我的尝试

X <- split(myList, myList$ID)

结果如下:

$`511`
     value  ID
1 3.166667 511
2 3.166667 511

$`532`
     value  ID
3 3.416667 532
4 3.291667 532

$`556`
  value  ID
5  3.00 556
6  2.75 556

然而,我希望得到这个结构(原始 df 中的每一行都是一个不同的变量)

$1
     value    ID
1    3.166667 511
3    3.416667 532
5    3.00     556

$2
     value    ID
2    3.166667 511
4    3.291667 532
6    2.75     556

我该如何做到这一点?提前致谢

【问题讨论】:

    标签: r


    【解决方案1】:

    我们可以使用来自data.tablerowid 轻松做到这一点

    library(data.table)
    split(df, rowid(df$ID))
    #$`1`
    #     value  ID
    #1 3.166667 511
    #3 3.416667 532
    #5 3.000000 556
    
    #$`2`
    #     value  ID
    #2 3.166667 511
    #4 3.291667 532
    #6 2.750000 556
    

    【讨论】:

    • 正是我想要的,非常感谢! :)
    • 如何将此解决方案应用于嵌套列表?
    • @ComfortEagle 您能否通过示例发布一个新问题?谢谢
    • 谢谢。此处发布了一个新问题:stackoverflow.com/questions/45154451/…
    猜你喜欢
    • 2013-08-02
    • 1970-01-01
    • 2019-10-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多