如何创建一个新的列,即R中两行的减法?

时间:2014-07-21 22:02:28

标签: sql database r

我的表看起来像这样:

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

我确实知道这是一个简单的问题,但我省略了我的真实表/连接等。我确定这是一个简单的方法,只是不确定如何。

1 个答案:

答案 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}}