【问题标题】:List within a data.frame column在 data.frame 列中列出
【发布时间】:2020-04-18 20:23:47
【问题描述】:

到目前为止,我有以下data.frame,初始列填充了设定值:

df <- data.frame(N=seq(10, 100, by=10))

现在,我想在此处添加第二列,它将是整数的list(或c()),这样调用df 的输出将如下所示:

      N         I
1     10        2, 8, 1
2     20        4, 0, 99
..    ..        ..

我尝试执行以下操作,其中df <- data.frame(N=seq(10, 100, by=10), I=logical(10))FALSE 放在每一列中。但是尝试使用df$I[df$N == 10] <- list(2, 8, 1) 测试我想要做的事情会引发错误:

要替换的项目数不是替换长度的倍数

编辑:我也尝试使用I(list(...)) 来保持列表按原样解释,但抛出了同样的错误。

【问题讨论】:

    标签: r list dataframe


    【解决方案1】:

    我们可以通过在data.frame中用I包装来创建list,然后通过提取与逻辑向量提供的索引对应的list元素进行分配

    df <- data.frame(N=seq(10, 100, by=10), I= I(vector('list', 10)))
    df$I[df$N == 10][[1]] <- list(2, 8, 1)
    df
    #     N       I
    #1   10 2, 8, 1
    #2   20        
    #3   30        
    #4   40        
    #5   50        
    #6   60        
    #7   70        
    #8   80        
    #9   90        
    #10 100        
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-01-20
      • 2016-10-05
      • 1970-01-01
      • 1970-01-01
      • 2021-06-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多