daa*_*noo 4 r vector vectorization run-length-encoding na
什么是一个聪明的(即,不是循环)方式来获得向量中每个缺失值的长度?我的理想输出是一个长度相同的向量,其中每个缺失值被它所属的缺失值的法术长度替换,所有其他值都是0.
所以,对于像这样的输入:
x <- c(2,6,1,2,NA,NA,NA,3,4,NA,NA)
Run Code Online (Sandbox Code Playgroud)
我想输出像:
y <- c(0,0,0,0,3,3,3,0,0,2,2)
Run Code Online (Sandbox Code Playgroud)
一个简单的选项使用rle:
m <- rle(is.na(x))
> rep(ifelse(m$values,m$lengths,0),times = m$lengths)
[1] 0 0 0 0 3 3 3 0 0 2 2
Run Code Online (Sandbox Code Playgroud)