gpt4 book ai didi

r - 如何根据列标签(包含典型字符)跨列求和?

转载 作者:行者123 更新时间:2023-12-01 04:50:31 30 4
gpt4 key购买 nike

亲爱的 Stack Overflow 社区,
我是论坛的新手,这是我的第一篇文章。
我的问题如下:
我想对列标签是否包含典型字符(在我的情况下,包含“完整”或“不完整”)的每行求和,并在相关列“sum_complete”和“sum_incomplete”中报告这些总和。

set.seed(1)
incomplete_x=1:10
incomplete_y=rnorm(10)
complete_x=runif(10)
complete_y=3:12
dt=cbind(incomplete_x,incomplete_y,complete_x,complete_y)
我要 dt[,5]dt[,6]分别包含:

0.3735462 2.1836433 2.1643714 5.5952808 5.3295078 5.1795316 7.4874291 8.7383247 9.5757814 9.6946116

3.934705 4.212143 5.651674 6.125555 7.267221 8.386114 9.013390 10.382388 11.869691 12.340349


我一直在做类似的事情(对不起,不擅长编码......):
for (i in 1:ncol(dt)) {
if (grepl("incomplete",colnames(dt)[i])==TRUE) {
dt[,"sum_incomplete"] <- rowSums(dt)
} else {
dt[,"sum_complete"] <- rowSums(dt)
}
}
但是代码不起作用。
你能帮忙处理这个代码吗?
预先感谢您的帮助!
安东尼

最佳答案

您使用 grep 朝着正确的方向前进,但 for不需要循环

dt <- cbind(dt, rowSums(dt[, grep("^incomplete", colnames(dt))]))
dt <- cbind(dt, rowSums(dt[, grep("^complete", colnames(dt))]))

colnames(dt)[5:6] <- c("sum_incomplete", "sum_complete")

作为旁注,最好不要使用 dt用于命名矩阵,因为它既是函数名又可能是不同库的缩写

关于r - 如何根据列标签(包含典型字符)跨列求和?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41570432/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com