我有一个数据框,我想在其中基于其他内容创建新的计算列:
dat <- data.frame(date = c("2017-02-23", "2017-02-22", "2017-02-15",
"2017-02-05","2018-05-23", "2018-02-22"),
var1 = c(1,3,6,7,8,5), var2 = c(1,3,18,15,25,5),
var3= c(8, 4,6, 5, 5,4), var4 = c(8, 4,6, 5, 5,3))
现在我要使用此结果创建一个数据框。
dat$var5 = dat$var1 + dat$var2
dat$var6 = dat$var3 + dat$var4
但是要快速
答案 0 :(得分:1)
我们可以使用split.default
每隔一列分割数据帧,并使用Reduce
添加它们,即
Reduce(`+`, split.default(dat[-1], c(TRUE, FALSE)))
# var2 var4
#1 2 16
#2 6 8
#3 24 12
#4 22 10
#5 33 10
#6 10 7