基于其他列的许多计算列

时间:2019-05-30 08:02:31

标签: r

我有一个数据框,我想在其中基于其他内容创建新的计算列:

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

但是要快速

1 个答案:

答案 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