r - 在列表列中追加缺失的项目

标签 r list

我想将 01000000 添加到缺少它们的每个列表中。

dat <- structure(list(cat = structure(c(1L, 3L, 2L), levels = c("A", 
"B", "C"), class = "factor"), 
    strata = list(c(25, 100, 250, 500), c(25, 
    100, 250, 500), c(25, 100, 1000000
    ))), row.names = c(NA, -3L), class = c("data.table", "data.frame"
))

   cat                  strata
1:   A          25,100,250,500
2:   C          25,100,250,500
3:   B      25,    100,1000000

我尝试执行以下操作:

    dat$strata <- lapply(dat$strata, \(x){
       if (0 %nin% dat$strata) {
        dat$strata<- append(0, dat$strata)
       }
       if (1000000 %nin% dat$strata) {
        dat$strata<- append(dat$strata, 1000000)
       }
    })

但是我做错了。

期望的输出:

   cat                  strata
1:   A       0,  25,100,250,500,1000000
2:   C        0, 25,100,250,500,1000000
3:   B     0, 25,    100,1000000

这里正确的语法是什么?

最佳答案

一个简单的方法是在各处添加 0 和 1000000 并取唯一值

dat$strata[] <- lapply(dat$strata, function(i)unique(c(0, i, 1000000)))

 dat
  cat                        strata
1   A 0, 25, 100, 250, 500, 1000000
2   C 0, 25, 100, 250, 500, 1000000
3   B           0, 25, 100, 1000000

关于r - 在列表列中追加缺失的项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/72772972/

相关文章:

r - 选择不同年份的共同行

r - 我可以用 GAMM 估计 R 中随时间变化的季节性影响吗?

r - foreach 和 dopar 返回 NULL 而不是所需的答案

Python 字典打印所有键的所有值

python - 从排列中清理元组列表

python - 在python中根据时间戳对字典进行排序

r - R中的子集字符向量

python - 需要以列表形式获取输出,而不是 Popen 或任何其他系统命令中的字符串

c# - linq to list<object> 并获取每行的值

r - 使用 Gmail 在 R 中发送带有附件的电子邮件