【问题标题】:Getting differences between consecutive values in a column (or vector) by ignoring NA values通过忽略 NA 值来获取列(或向量)中连续值之间的差异
【发布时间】:2019-03-26 23:12:33
【问题描述】:

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

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

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

我需要你的帮助。

【问题讨论】:

    标签: r


    【解决方案1】:

    您可以使用R 中内置的diff 函数首先计算差异。这将返回一个包含一些NA 值的向量(对应于x 中的NA)。然后,您可以删除它们,留下一个仅包含非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)]
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-11-07
      • 2020-03-05
      • 1970-01-01
      • 2017-06-24
      • 1970-01-01
      • 2022-10-14
      • 2014-10-22
      相关资源
      最近更新 更多