我想将 0
和 1000000
添加到缺少它们的每个列表中。
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/