通过忽略NA值来获取列(或向量)中连续值之间的差异

时间:2019-03-26 07:55:04

标签: r

我想获得矢量(或数据帧的一列)中连续因子的差异。但是我必须忽略此操作的NA值。

difference <- abs(vector[i] - vector[i+1])

如果vector [i]或vector [i + 1]的值为NA,则应忽略上述操作。

我需要你的帮助。

1 个答案:

答案 0 :(得分:1)

您可以使用diff中内置的R函数来首先计算差异。这将返回一个包含一些NA值的向量(对应于NA中的x)。然后,您可以删除它们,从而留下仅包含非{NA值的向量。

# make a vector with some NA values
x = rnorm(100)
x[sample(c(T, F), 100, prob = c(0.05, 0.95), replace=T)] = NA

# compute differences and take absolute value
d = abs(diff(x))
# remove na values
d2 = d[!is.na(d)]