【发布时间】:2020-10-20 17:38:21
【问题描述】:
让我们假设以下数据框(尽管我的真实数据集有更多列):
df<- data.frame(date=c(01.01.2010,02.01.2010, 03.01.2010),
x1=c(1,2,4), y1=c(1,2,3), x2=c(1,2,2), y2=c(3,4,4), x3=c(3,3,3), y3=c(3,4,5))
Date x1 y1 x2 y2 x3 y3
01.01.2010 1 1 1 3 3 3
02.01.2010 2 2 2 4 3 4
03.01.2010 4 3 2 4 3 5
首先,我想将所有 y 列(每隔一列)的总和计算为一个名为 y_total 的新列,并将其添加到数据框中。 其次,我想计算所有 x 列的新列,其中 x1_new= x1*(y1/y_total),x2_new= x2*(y2/y_total), x3_new= x3*(y3/y_total)。我想一次计算所有 x1_new、x2_new、n3_new 列,因为在我的真实数据集中我有多达 60 个这些列。在具体示例中,它应该如下所示:
Date x1 y1 x2 y2 x3 y3 y_total x1_new x2_new x3_new
01.01.2010 1 1 1 3 3 3 7 0.1428 0.4286 1.286
02.01.2010 2 2 2 4 3 4 10 0.4 0.8 1.2
03.01.2010 4 3 2 4 3 5 12 1 0.6666 1.25
有没有一种方法可以一次计算每个旧 x 列的新 x 列?我问这个是因为有时我有 90 x 列的数据框。 提前致谢!
【问题讨论】:
标签: r multiple-columns calculated-columns