我的表看起来像这样:
Date Sample_Total Actual
1/1 2 3
1/2 4 5
1/3 6 7
我想要做的是添加一个新列,显示前一天样本的变化,即
Date Sample_Total Actual Change
1/1 2 3 -
1/2 4 5 2
1/3 6 7 2
我确实知道这是一个简单的问题,但我省略了我的真实表/连接等。我确定这是一个简单的方法,只是不确定如何。
答案 0 :(得分:3)
您可以使用diff
。
将dat
作为您的数据对象。由于您拥有所有数字列(日期除外),因此最好确保新列也是数字。因此,-
(或零)更适合使用NA
标记,而不是使用> dat$Change <- with(dat, c(NA, diff(Actual)))
> dat
# Date Sample_Total Actual Change
# 1 1/1 2 3 NA
# 2 1/2 4 5 2
# 3 1/3 6 7 2
标记。
within
您还可以使用> within(dat, { Change <- c(NA diff(Actual)) })
# Date Sample_Total Actual Change
# 1 1/1 2 3 NA
# 2 1/2 4 5 2
# 3 1/3 6 7 2
,它可以派上用场,因为它会返回包含任何更改的数据。但这比上述方法慢。
{{1}}