繁体   English   中英

如何创建一个新列,该新列将R中的两行相减?

[英]How do I create a new column that is the subtraction of two rows in 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

我确实意识到这是一个简单的问题,但是我省略了我的实际表/连接等。 我敢肯定有一个简单的方法可以做到这一点,只是不确定如何做到。

您可以使用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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM