r - 对具有特定条件的特定行求和

标签 r dplyr data-wrangling

我有一个数据框:

dat <- data.frame(X1 = c(0, NA, NA),
                  X2 = c(1, NA, NA),
                  X3 = c(1, NA, NA),
                  X4 = c(1, 5, 8),
                  X5 = c(2, 6, 4),
                  X6 = c(3, 3, 3))

我想对 X4X5X6 行求和以获得总分。但是,这些列中任何高于 6 的数字都必须计为 7,然后才能与其他列相加以获得总分。

执行此操作的简洁方法是什么?

谢谢!

最佳答案

可能的解决方案:

dat$score <- rowSums(pmin(dat[4:6], 7))
dat

#>   X1 X2 X3 X4 X5 X6 score
#> 1  0  1  1  1  2  3     6
#> 2 NA NA NA  5  6  3    14
#> 3 NA NA NA  8  4  3    14

关于r - 对具有特定条件的特定行求和,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/72746828/

相关文章:

r - 累计计算不同年份的不同用户总数

r - 满足条件后使用 dplyr 改变以下行

r - 如何在R中的列中查找非分数值的出现?

python - 如何在 Pandas 数据框的每一行中的选定列中找到两个最低值?

r - 如何随机采样具有唯一列值的数据帧行

r - 如何导出叶节点(rpart)的标准差?

r - 如何从 data.table 中排除一列或将 data.table 转换为 MTS

r - 向条形图添加标签?

R错误: expecting a single value what does it mean?