[英]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.