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

删除R中以NA.x作为行号的行,r,row,na,R,Row,Na,很抱歉没有提供模拟数据集,但下面是我的问题的屏幕截图: 您看到的是我的数据帧的一个子集。我试图从我的数据帧中删除实际行号中有NA,NA.1,NA.x…NA.6的行 我曾尝试返回到原始的.csv文件,删除数据结尾处的~200个空白行,但没有帮助 有什么想法吗?也许以下代码将为您删除NA记录: df <- df[rowSums(is.na(df))<length(df), ] 列的推论是 df <- df[, colSums(is.na(df))<nrow(df)] 在兔

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

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

我曾尝试返回到原始的.csv文件,删除数据结尾处的~200个空白行,但没有帮助


有什么想法吗?

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

df <- df[rowSums(is.na(df))<length(df), ]
列的推论是

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

在兔子洞里呆了几个小时后,我想出了一个答案,尽管不是很令人满意

我尝试了一些选项,如DF[!is.naDF$column\u w/\u an\u NA\u that\u should\u have\u data]来删除这些行,但我得到的结果是指定列中没有w/NA行

我发现它与合并有关。我向您展示的数据帧DF是两个不同长度DF的合并DF。这两个DFs的行数相差8行——正好是奇怪的NA.x列数


我将调用DF w/240行DFA和DF w/232行DFB。我使用了DFC这个答案基于MichaelChirico的评论和建议


这将创建一个新的df,其中没有任何名称中包含NA的行。任何行的rowname为NA的行都将使用grep1命令标记为TRUE;仅保留标记为FALSE的行。

grepl^NA,rownamesDF是您所追求的核心。如果您在文本编辑器而不是Excel中删除csv行,这可能会奏效。否则,如果您知道应该有多少行,n,只需过滤为DF[1:n,]DF[!rownamesdf%in%c'NA.1','NA.2','NA.3','NA.4','NA.5','NA.6',]可能与您的两个代码段重复,我收到了以下错误消息:rowSumsis.nadf中的错误:'x'必须是至少二维的数组
df <- df[grepl("^NA", rownames(df))==F,]