Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/64.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R 在任何列中使用NA(缺少值)子集所有行_R_Na - Fatal编程技术网

R 在任何列中使用NA(缺少值)子集所有行

R 在任何列中使用NA(缺少值)子集所有行,r,na,R,Na,我有一个数据集(teleco),有3000个OB,其中有许多(332)缺失值(NA)。当我试图将所有缺少的值子集到另一个数据帧中时,我奇怪地以3745 OB结束 clean = na.omit(teleco) new = teleco[is.na(teleco[1:19])==TRUE, ] 清洁-2668个obs,共19个VAR 新-3745 obs,共19个VAR teleco-3000 obs,共19个VAR 我肯定我做错了什么。有人能帮忙吗?如果我们需要对至少有一个NA的行进行子集,我

我有一个数据集(teleco),有3000个OB,其中有许多(332)缺失值(NA)。当我试图将所有缺少的值子集到另一个数据帧中时,我奇怪地以3745 OB结束

clean = na.omit(teleco)
new = teleco[is.na(teleco[1:19])==TRUE, ]
清洁-2668个obs,共19个VAR

新-3745 obs,共19个VAR

teleco-3000 obs,共19个VAR


我肯定我做错了什么。有人能帮忙吗?

如果我们需要对至少有一个
NA
的行进行子集,我们可以使用逻辑矩阵(
is.NA(teleco)
)上的
行和创建索引,并将其转换为逻辑向量(
!=0

或者我们可以使用
apply
MARGIN=1
来创建逻辑向量

teleco[apply(is.na(teleco), 1, any),]
数据
set.seed(24)

teleco如果我们需要将至少有一个
NA
的行子集,我们可以使用逻辑矩阵(
is.NA(teleco)
)上的
行和创建索引,并将其转换为逻辑向量(
!=0

或者我们可以使用
apply
MARGIN=1
来创建逻辑向量

teleco[apply(is.na(teleco), 1, any),]
数据
set.seed(24)

teleco我更喜欢@akrun的解决方案,但这里有一个替代方案可以给出相同的结果:

teleco[unique(which(is.na(teleco), arr.ind=T)[,1]),]

其思想是使用
NA
提取行号,使用
which()
并结合选项
arr.ind=TRUE
。因为我们对哪些列包含
NA
的信息不感兴趣,所以我们只选择
which()
[,1]

一起提供的输出的第一个值,我更喜欢@akrun的解决方案,但这里有一个替代方案可以给出相同的结果:

teleco[unique(which(is.na(teleco), arr.ind=T)[,1]),]

其思想是使用
NA
提取行号,使用
which()
并结合选项
arr.ind=TRUE
。因为我们对哪些列包含
NA
的信息不感兴趣,所以我们只选择
which()
[,1]

一起提供的输出的第一个值,我不知道为什么,但您的代码提取了3745个OB。就像我在问题中发布的一样。我想我已经通过使用
unique()
纠正了这个问题。也许你想再试一次?如果这是一个有效的替代方案,我宁愿保留它。Perfect-new3=teleco[unique(即.na(teleco),arr.ind=T)[,1]),这很有效!我不知道为什么,但你的代码提取了3745个obs。就像我在问题中发布的一样。我想我已经通过使用
unique()
纠正了这个问题。也许你想再试一次?如果这是一个有效的替代方案,我宁愿保留它。Perfect-new3=teleco[unique(即.na(teleco),arr.ind=T)[,1]),这很有效!