我创建了一个函数,它接收数据框并返回该数据框中数值变量的平均值和中位数。当我测试函数时,有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中有所不同。请提供一个[可重现的示例](https://stackoverflow.com/questions/5963269/how-to-make-a-great-r-reproducible-example)以及样本输入数据。 – MrFlick
我添加了我的代码。 – Hannah
什么是期望的输出。你正在分配'variable.list [[i]]',但是'i = 1'这个列看起来不是数字。所以你第一次分配是当'i = 4'离开那些NULL值时。 – MrFlick