如何识别和删除列表中空的但不是NA或NULL的条目。当我尝试比较其元素时,为什么我的列表似乎是一个因素?
> s <- subset(world, (oil == "Yes") & !is.na(effectiveness) & !is.null(effectiveness), select = effectiveness)
> s
effectiveness
3 32.62411409517834
30 31.91489350429382
41
54 23.8770690651932
64 35.93380642839076
80 33.3333332769696
81 35.6973993299137
116 50.118203450602
131 20.09456253502668
181
194 19.62174974716583
> typeof(s)
[1] "list"
> sum(s)
Error in FUN(X[[1L]], ...) :
only defined on a data frame with all numeric variables
> s[s > 0]
[1] NA NA NA NA NA NA NA NA NA NA NA
Warning message:
In Ops.factor(left, right) : > not meaningful for factors
答案 0 :(得分:2)
s
是一个data.frame。 typeof
返回基础存储类型,而不是类。很难知道为什么s$effectiveness
是一个不知道你如何创建s
的因素。
您可以{/ 3}}通过:
s$effectiveness <- as.numeric(levels(s$effectiveness))[s$effectiveness]