6

如何计算数据框中列的数值导数(使用 diff())并通过添加 NA 值来保持长度?

4

2 回答 2

14

目前尚不清楚您到底想要 NA 在哪里,但您可以直接将它们连接起来。

 dif <- c(NA, diff(dfrm$id, lag=1)) 
于 2012-11-27T22:12:05.980 回答
8

从这个答案到我的一个问题。

如果您正在寻找一种通用的方式来预先NA

pad  <- function(x, n) {
    len.diff <- n - length(x)
    c(rep(NA, len.diff), x) 
} 

x <- 1:10
dif <- pad(diff(x, lag=1), length(x)) 

但如果你不害怕带zoo图书馆,最好这样做

library(zoo)
x <- 1:5
as.vector(diff(zoo(x), na.pad=TRUE)) # convert x to zoo first, then diff (that invokes zoo's diff which takes a na.pad=TRUE)
# NA 1 1 1 1 (same length as original x vector)
于 2016-09-14T08:50:43.187 回答