我是一个相当新手的R用户,但我一直在尝试做一些简单的缺少值的替换。(用NA之前和之后的值的平均值替换NA )
我一直在使用imputeTS库中的na_ma()函数,它正在做我需要做的事情。
na_ma(x , k=1, weighting = "simple") 我已经将它应用到一个列,然后是一个数据帧,一切都很好。我现在希望将它应用于数据帧列表,但它似乎不起作用。
如果有人能为我指出正确的方向,我将不胜感激。
发布于 2021-11-09 21:36:07
无论是使用lapply还是使用循环,都应该非常简单。
下面是一个可重现的例子-- lapply:
library("imputeTS")
a <- data.frame(x1 <- c(2,NA,NA,2,4,6,6), x2 <- c(2,NA,7,2,NA,6,6))
b <- data.frame(x1 <- c(2,NA,33,2,4,61,6), x2 <- c(22,NA,71,2,NA,36,6))
# this is your list with data.frames that contain columns with NAs
l <- list(a,b)
# Don't forget to assign the result of lapply back to your list l
l <-lapply(l, function(x) na_ma(x , k=1, weighting = "simple"))
l下面是一个带有列表的示例:
library("imputeTS")
# Create Example data
a <- data.frame(x1 <- c(2,NA,NA,2,4,6,6), x2 <- c(2,NA,7,2,NA,6,6))
b <- data.frame(x1 <- c(2,NA,33,2,4,61,6), x2 <- c(22,NA,71,2,NA,36,6))
l <- list(a,b)
for (i in length(l))
{
l[[i]] <- na_ma(l[[i]] , k=1, weighting = "simple")
}
l for循环版本可能具有更好地跟踪警告或错误的优势。但不管怎样,我想这两个版本都应该可以工作。
https://stackoverflow.com/questions/69883551
复制相似问题