删除NA.x中的行作为R中的行号

问题描述 投票:-1回答:2

抱歉没有提供模拟数据集,但这里是我的问题的屏幕截图:

enter image description here

你所看到的是我的数据帧的一个子集。我试图从我的数据帧中删除实际行号中有NA, NA.1, NA.x ...NA.6的行。

我已经尝试回到我原来的.csv文件并删除我的数据结束处的~200个空白行,但这没有帮助。

有任何想法吗?

r row na
2个回答
0
投票

也许以下代码将为您删除NA记录:

df <- df[rowSums(is.na(df))<length(df), ]

列的推论是

df <- df[, colSums(is.na(df))<nrow(df)]

0
投票

在一个R兔子洞里待了好几个小时后,我想出了一些答案,虽然不太令人满意。

我尝试了一些选项,如DF [!is.na(DF $ column_w / _an_NA_that_should_have_data),]删除这些行,但我得到的结果是指定列中没有NA / NA行。

我发现它有一些事情要做“合并”。我向您展示的数据帧(DF)是两个不同长度的DF的合并DF。两个DF相差8行 - 恰好是奇怪的NA.x列的数量。

我将DF称为240行“DFA”,DF称为232行“DFB”。我使用DFC <-merge(DFA,DFB,all = T)来合并DF。如果我将DFC导出为.csv并在Excel中打开它,一切看起来应该是 - 所有240行都在那里,并且有8行的子集在DFA特定列中具有NA。

那么为什么当我对数据进行子集化时,这些NA.x行(即行#中的NA.x)会出现?好吧,我发现当我通过DFA和DFB常用的列对数据进行子集时,输出看起来很正常。也就是说,没有奇怪的NA.x行。但是,当我按DFA特有的列对数据进行子集时,该列中有NA的8行显示为完全NA.x行。更具体地,我将由因子组成的DFA独特列子集化为例如3个级别中的1个。这是我看到弹出NA.x行的时候。

我不知道为什么整行变成这些奇怪的NA.x行,因为这些行在DFA-DFB公共列和DFB唯一列中都有数据。

有没有人遇到过类似的现象?我交谈的R-wizzes从未遇到过它,也无法想象为什么会发生这种情况。

雪莱

© www.soinside.com 2019 - 2024. All rights reserved.