我正在尝试从现有变量创建新变量,如下所示:
a1+a2=a3, b1+b2=b3, ..., z1+z2=z3
这是一个示例数据框
df <- data.frame(replicate(10,sample(1:10)))
colnames(df) <- c("a1","a2","b1","b2","c1","c2","d1","d2","e1","e2")
这是我的重复代码的解决方案
# a solution by base R
df$a3 <- df$a1 + df$a2
df$b3 <- df$b1 + df$b2
df$c3 <- df$c1 + df$c2
df$d3 <- df$d1 + df$d2
df$e3 <- df$e1 + df$e2
Or
# a solution by dplyr
library(dplyr)
df <- df %>%
mutate(a3 = a1+a2,
b3 = b1+b2,
c3 = c1+c2,
d3 = d1+d2,
e3 = e1+d2)
Or
# a solution by data.table
library(data.table)
DT <- data.table(df)
DT[,a3:=a1+a2][,b3:=b1+b2][,c3:=c1+c2][,d3:=d1+d2][,e3:=e1+e2]
实际上我有超过100个变量,所以我想找到一种方法来做到这一点而不重复代码...虽然我尝试使用 mutate_ 与标准评估和正则表达式,但我迷失了方向,因为我是 R 的新手。您可以在不重复代码的情况下改变多个变量吗?