相关疑难解决方法(0)

在忽略NA值的同时计算cumsum()

考虑以下命名向量x.

( x <- setNames(c(1, 2, 0, NA, 4, NA, NA, 6), letters[1:8]) )
# a  b  c  d  e  f  g  h 
# 1  2  0 NA  4 NA NA  6 
Run Code Online (Sandbox Code Playgroud)

我想计算x忽略NA值的累计和.许多R函数都有一个参数na.rm,可以NA在计算之前删除元素. cumsum()不是其中之一,这使得这个操作有点棘手.

我可以这样做.

y <- setNames(numeric(length(x)), names(x))
z <- cumsum(na.omit(x))
y[names(y) %in% names(z)] <- z
y[!names(y) %in% names(z)] <- x[is.na(x)]
y
# a  b  c  d  e  f  g  h 
# 1  3  3 NA  7 NA …
Run Code Online (Sandbox Code Playgroud)

r

30
推荐指数
4
解决办法
2万
查看次数

标签 统计

r ×1