![](/img/trans.png)
[英]In is.na(e2) : is.na() applied to non-(list or vector) of type 'NULL'
[英]Error:: is.na() applied to non-(list or vector) of type 'NULL'
当我使用下面的代码然后它给我所需的输出
subset(ndata,!is.na(ndata$LHeart_Failure))
而当我以其他形式完成上述相同的代码时
out <- "LHeart_Failure"
subset(ndata,!is.na(ndata$out))
它给了我错误:
logical(0)
Warning message:
In is.na(ndata$out) :
is.na() applied to non-(list or vector) of type 'NULL'
这里ndata是.csv文件中的数据。 LHeart_Failure是列的名称,我希望通过该名称找到该特定列中没有“NA”的所有行(即LHeart_Failure中没有NA的所有行)。
当我尝试在不存在的数据帧列上调用is.na()
时,我收到此错误消息,例如
> ndata <- data.frame(v1=c(1:3), v2=c("one", "two", "three"))
> subset(ndata, !is.na(ndata$out))
[1] v1 v2
<0 rows> (or 0-length row.names)
Warning message:
In is.na(ndata$out) :
is.na() applied to non-(list or vector) of type 'NULL'
所以,你应该确保列out
第一个尝试使用它来子集之前确实存在。
我个人会避免使用subset
,而只是明确地对数据帧进行subset
化。 从你写的东西,它看起来像你想从数据帧保留行ndata
其中out
列没有的NA
值。 在这种情况下,您可以尝试:
ndata[!is.na(ndata$out), ]
这个错误是因为数据结构ndata
不包含任何叫列out
。 使用命令:
out <- "LHeart_Failure"
你只创建一个变量out
与字符串内容"LHeart_Failure"
。 如果要将out
用作LHeart_Failure
列的等效LHeart_Failure
,则必须调用:
out <- ndata$LHeart_Failure
其次是
found_idxs <- which[!is.na(out)]
ndata$out
假定数据ndata
存在列out
。 如果你想使用您保存在串out
作为列名来过滤数据,我建议你这样做:
out <- "LHeart_Failure"
ndata[!is.na(ndata[,out]),]
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.