我正努力在R中解决这个看似简单的问题,但直到现在还没有成功。 我有一个带有char变量的data.frame,它有一些空白和一些非空值。我试图用自上而下的相同变量找到最后一个非空白的空白,如下面的例子所示,在data.frame中'变量'变种''想要'vs'有'。
如果有人可以提供帮助,我提前感谢!
set.seed(12346)
foi <- split(iris, iris$Species)
want <- do.call("rbind", lapply(foi, function(x){
x[1:sample(1:10, 1), ]
}))
row.names(want) <- NULL
want$Species <- as.character(want$Species)
have <- want
have$Species[2:10] <- ""
have$Species[12:16] <- ""
have$Species[18:21] <- ""
head(have, 20)
head(want, 20)
答案 0 :(得分:0)
一个简单的for
循环,假设第一个值没有丢失:
for(i in which(have$Species=="")) have$Species[i]=have$Species[i-1]
您可以按连续空白值块拆分变量,如果速度有问题并且文件很大,则可以使用前一个非空白值填充每个块。