gpt4 book ai didi

逐行计算

转载 作者:行者123 更新时间:2023-12-04 11:36:19 24 4
gpt4 key购买 nike

我已经开始学习 R。

需要您帮助了解如何在循环中进行此计算:

C1    C2     C3   
A 5 10
A 4 6
B 2 3
B 8 9

我希望输出为
C1    C2         C3     C4(c2*c3)
A 5 10 50
A 4+50=54 6 54*6= 324
B 2 3 6
B 8+6=14 9 14*9 = 126

对于列 C1 中的每个不同值,应将在 C4 处计算的值添加到 C2 处的新行值中。

最佳答案

dplyr可能是:

df %>%
group_by(C1) %>%
mutate(C4 = (C2 + lag(C2 * C3, default = 0)) * C3,
C2 = C2 + lag(C2 * C3, default = 0))


C1 C2 C3 C4
<chr> <dbl> <int> <dbl>
1 A 5 10 50
2 A 54 6 324
3 B 2 3 6
4 B 14 9 126

或使用 data.table (由@markus):
setDT(df)[, `:=`(C4 = (C2 + shift(C2 * C3, fill = 0)) * C3,
C2 = C2 + shift(C4, fill = 0)), by = C1]

关于逐行计算,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56898240/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com