【发布时间】:2017-07-09 13:34:01
【问题描述】:
我想对数据框中的列进行滚动减法。第 2 行将从第 1 行列中减去。
这里的目标是从 value 列中的第 1 行中减去第 2 行...并将其向下滚动到 data.frame
Excel 就是 =sum(B2-B1)
下面是一个示例数据框
Date Value Diff
1 19280103 17.76 NA
2 19280104 17.72 -0.04
3 19280105 17.55 -0.17
4 19280106 17.66 0.11
5 19280107 17.68 0.02
6 19280109 17.5 -0.18
7 19280110 17.37 -0.13
【问题讨论】:
-
查看
?diff -
(1) 您的数据框中没有
Close列,(2) 如果我们将Close替换为Value,那么您显示的代码不会产生错误。如果您尝试将其分配回df(应该已在问题中显示),那么它将是df$Diff <- c(NA, diff(df$Value))请查看How to Ask 和minimal reproducible example。 -
diff将返回一个短一个元素的向量。您只需要在您认为有必要时在开头或结尾添加一个。做c(NA, diff(...)) -
ok as running a vector...然后这是抛出替换/数据错误....放置 c(NA,diff(df$Value))。如果我将该列拉成向量并运行它可以工作的命令,但它不能将其放回数据帧,由于某种原因它想跳过 2x 并在开头放置两个 NA
-
这不应该发生。
标签: r