在R 的数据框中将指定列合并为一列
在下列表格中
0 10 20 31 32 33
0 20267 193 22 140 124 110
18 5 0 0 0 0 0
我想把列名大于等于20的列合并成一个列,其值为这些列的和,也就是
0 10 20+
0 20267 193 396
18 5 0 0
我已经看到,vcdExtra::collapse.table 可以做到这一点,但这属于一个基本功能,应该有一种仅用base R就能实现的简单方法。有什么建议吗?
以下是使用 dput() 打印的表格:
structure(c(20267L, 5L, 193L, 0L, 22L, 0L, 140L, 0L, 124L, 0L,
110L, 0L), dim = c(2L, 6L), dimnames = structure(list(c("0",
"18"), c("0", "10", "20", "31", "32", "33")), names = c("", ""
)), class = "table")
解决方案
可以尝试以下方法
num <- as.numeric(colnames(tb)) > 19
res <- cbind(tb[, !num], '20+'=rowSums(tb[, num]))
得到
> res
0 10 20+
0 20267 193 396
18 5 0 0
站内所有文章版权归属LeftHeroAI导航站,无授权禁止任何主体转载、抄袭、复制内容,亦不得私自架设镜像站点。一经侵权,本站将通过法律途径追责。