如何在不输入所有列名的情况下添加列?
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))
假设我有 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))