2012-11-27 13 views
3

如何計算數據框中某列的數值導數(使用diff()) 並通過添加NA值來保持長度?計算導數diff()並保持長度 - 添加NA

+1

目前還不清楚是什麼你在問。保持什麼長度? –

+0

您是否知道「派生」不等於「派生」? –

+0

@CarlWitthoft我改變了它 –

回答

3

從這個answer到我的問題在哪裏。

如果你正在尋找一種通用的方法前面加上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) 
12

不明確的正是你想要NA的,但你可以正確的Concat他們。

dif <- c(NA, diff(dfrm$id, lag=1))