【发布时间】:2017-10-16 13:16:50
【问题描述】:
我创建了一个函数,它接收一个数据帧并返回该数据帧中数值变量的平均值和中位数。当我测试函数时,有 3 个空值。我将如何从中删除空值?
df.numeric.summary <- function(data.frame1){
variable.list=list()
numcols <- sapply(data,is.numeric)
for(i in 1:ncol(data.frame1)){
if (is.numeric(data.frame1[[i]]) == TRUE) {
variable.list[[i]]=list(c("Mean"=mean(data.frame1[[i]], na.rm = TRUE),"Median"=median(data.frame1[[i]]), "IQR"=IQR(data.frame1[[i]])))
}
}
return(variable.list)
}
我的输出如下所示:
[[1]]
NULL
[[2]]
NULL
[[3]]
NULL
[[4]]
[[4]][[1]]
Mean Median IQR
10.76687 3.56400 7.75100
[[5]]
[[5]][[1]]
Mean Median IQR
10.43467 1.40000 4.50100
[[6]]
[[6]][[1]]
Mean Median IQR
3.701434 0.839000 2.429500
而输出应该是这样的
$Pb1
Mean Median IQR
10.76687 3.56400 7.75100
$Pb2
Mean Median IQR
10.43467 1.40000 4.50100
$Pb3
Mean Median IQR
3.701434 0.839000 2.429500
【问题讨论】:
-
你的意思是NULL还是NA?它们在 R 中是不同的。请提供带有示例输入数据的reproducible example。
-
我添加了我的代码。
-
而想要的输出到底是什么。您正在分配给
variable.list[[i]],但随后i=1该列似乎不是数字。所以你第一次分配是当i=4留下那些NULL值。 -
我添加了所需输出的图像。我为它之前没有出现而道歉。