r - 如何计算列中的变化

标签 r counter

我正在寻找一种简单的方法来计算数据框“AA”列中发生的更改;所以新列“BB”应该在下面给出的 df 中看起来像:

df <- as.data.frame(cbind("Year"=c(2000,2000,2000,2001,2001,2001,2002,2002,2002,2003), "AA"=c(136,137,137,158,162,21,21,55,55,55), "BB"=c(1,2,2,3,4,5,5,6,6,6)))

换句话说,“AA”的任何变化(增加或减少)都应通过加起来计入“BB”中...

最佳答案

为此我喜欢 rle:

foo <- rle(df$AA)
foo$values <- 1:length(foo$values)
df$BB <- inverse.rle(foo)

关于r - 如何计算列中的变化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17595930/

相关文章:

javascript - 为什么我的 $digest() 迭代次数达到了?如何跟踪递归脚本的事件?

javascript - 如何以三人为一组数数(图案)

python - 使用 praw 解析评论时遇到问题

r - 如何创建一个包含 20 多个条目的 Rcpp NumericVector?

r - 错误: Attempt to redefine node in linear regression

r - 通过sample()进行数据洗牌将测试集中的RMSE降低到比训练集中更低的值

python - 从字典中的键中创建一个列表,考虑到它们的对应值

r - 更快的上次观察结转 (LOCF)

r - R中的分形盒计数

python - 在 Python 中排除 collections.Counter 中的零