如何在不输入所有列名的情况下添加列?

How can I add columns without having to type out all of the column names?

假设我有 10 列,我想添加第 11 列,对每行的第 1-6 列求和。我怎样才能做到这一点?我在另一个答案上看到了这个:

data$newCol <- sum(data[1:6])

但这导致 newCol 中的所有行都只有一个数字,这不是我想要做的。我知道如何做到这一点的唯一方法是这样的:

data$newCol <- data$colA + data$colB + data$colC 

等等,但是当我处理的不仅仅是几列时,这会变得乏味。有没有捷径,比如以某种方式使用 [1:6] ?我确定这是一个初学者问题,我尝试搜索但没有找到对我有意义的答案,抱歉。

谢谢!

你可以试试apply函数

data$newCol <- apply(data[,1:6], 1, sum, na.rm=TRUE)

如果我明白你的意思,这段代码可能会有所帮助:

library(dplyr)

data %>%
  rowwise() %>%
  mutate(new_col = sum(c_across(col1:col6), na.rm = TRUE))