如何将第一行的列值相乘添加到组中的所有其他行?

塞尔吉

这可能并不困难,但无法弄清楚如何以data.table方式进行制作。我需要一列C3,它等于组中第一行的C1 * C2加上当前行的C1 * C2。

这是一个例子:

library(data.table)
df = data.table( G = c(rep("G1", 3), rep("G2", 3)),  Index = c(1:3, 1:3), C1 = 1:6, C2 = 4:9)

最终表应如下所示:

G   Index   C1  C2  C3
G1      1    1   4  NA
G1      2    2   5  14
G1      3    3   6  22
G2      1    4   7  NA
G2      2    5   8  68
G2      3    6   9  82

为简单起见:在C3中,索引== 1的值并不重要。

任何想法都非常感谢!

阿克伦

一个选项是

df[,  C3 := c(NA, (C1 *C2)[-1]) + first(C1) * first(C2), G]
df
#    G Index C1 C2 C3
#1: G1     1  1  4 NA
#2: G1     2  2  5 14
#3: G1     3  3  6 22
#4: G2     1  4  7 NA
#5: G2     2  5  8 68
#6: G2     3  6  9 82

或略紧凑

df[, C3 := {v1 <- C1 * C2; c(NA, (v1 + v1[1])[-1])}, G]

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何将多个值添加到 SQL 中已经填充了其他行的列

如何将第一行和最后一行值添加到现有XML文件中

将一行的所有值作为列表添加到新列中

如何将一行中的值与所有其他行中的值进行比较?

在Angular2中如何将类仅添加到第一行

如何将第一列的值附加到pandas数据框中的所有其他列

如何将一列中的行值与组中另一列中的所有其他行进行比较?

数据表:将观察值添加到所有组并分配依赖于其他行的值

将列的一行与组中的所有其他行进行比较

SQL查询-将一行中的值添加到所有记录

如何将JLabel添加到JPanel中的每个第一行,第一个col

如何将每一行中的最大值以及所有其他数字保留为 0

TSQL将所有数据添加到第一行,然后将一半数据添加到第一行

当两行的第一个值相同时,如何将一行的数据添加到另一行

将第一行粘贴到新列中-而不粘贴其他所有行

如何在R的组中标识出第一行的值低于其他列中的第一行?

在用查询中的 MPmedia 项目填充之前,如何将数据添加到表的第一行?

为缺少的列值添加一行,所有其他列值都为 NaN

如何将向量中的一组元素与矩阵相乘,将所有其他元素设置为零

将一个数据框重复的所有列值添加到其他熊猫中

将数据框中的第一行添加到列标题

如何将列信息添加到引用其他行的Pandas数据框

如何将数据帧一行中的所有值除以该行的第一个值

将单个numpy数组的值添加到其他numpy数组中的所有列

如何将摘要统计值添加到数据框的每一行?

如何将总和值添加到每一行?

如何将下一行的值添加到当前行

如何将第一列中的值添加到新数组中?

将一行中的值添加到下一行并删除pandas数据框中的第一行