我的示例数据如下所示:
data <- read.table(text="group; year; val
a; 1928; 20
a; 1929; 50
a; 1930; 40
a; 1931; 45
b; 1935; -10
b; 1936; -15 ", sep=";", header=T, stringsAsFactors = FALSE)
> data
group year val
1 a 1928 20
2 a 1929 50
3 a 1930 40
4 a 1931 45
5 b 1935 -10
6 b 1936 -15
我想做的是在新列中计算相对于 1930 的累积总和sum_rel
(例如,1930 是开始年份,应添加 1930 以上的所有值,应减去 1930 以下的所有值)。如果所有年份都大于 1930 年,则相对值 (0=) 应该是每组最低的年份(如情况 b)。
group year val sum_rel
a 1927 -110
a 1928 20 -90
a 1929 50 -40
a 1930 40 0
a 1931 45 45
b 1934 0
b 1935 -10 -10
b 1936 -15 -25
我查看了该cumsum
功能,但无法将其应用于组,如果您能帮助我,我将非常高兴。