如何删除 NA 值和上面和下面的行

Posted

技术标签:

【中文标题】如何删除 NA 值和上面和下面的行【英文标题】:How to remove NA values and the row above and below 【发布时间】:2022-01-12 00:55:35 【问题描述】:

如何删除 R 中的 NA 值,同时删除 NA 值上方和下方的行? NA 位于大型数据集中的 2 个不同列中

因此,每次 NA 总共删除 3 行。

Center_x Center_y
200.3    400
NA       200.2
300      100
400.1    450
200      100
100      NA
200      100

我想得到

Center_x Center_y
400.1    450

【问题讨论】:

欢迎来到 Stack Overflow。请make this question reproducible 包含一个纯文本格式的小型代表性数据集 - 例如dput(yourdata) 的输出,如果不是太大的话。 【参考方案1】:

假设整个 column1 中只有 1 个 NA:

na_row <- is.na(df$column1)

na_row_number <- which(is.na(na_row))

remove_rows <- c((na_row_number-1):(na_row_number+1))

df <- df[-remove_rows,]

我认为这应该可行

【讨论】:

这是否也适用于具有大量 NA 的大型数据集? NA 位于 2 个不同的列中 是的,它应该可以工作,但你必须为每一列做一次 当我尝试运行“remove_rows”时出现错误。它说长度为 0 的参数。 当我在第二行代码中删除“is.na”时它可以工作,但它只会删除整个列中的 1 个 NA

以上是关于如何删除 NA 值和上面和下面的行的主要内容,如果未能解决你的问题,请参考以下文章

如何仅删除在 R 中具有所有 NA 的行? [复制]

matplotlib set_yticks 删除 imshow 的上半行和下半行 [重复]

如何根据分组变量计算所有列的总和并删除 NA

如何删除所有单元格在我指定的列中都有 NA 的 NA?

VIM如何在特定几行前面加3个空格

使用 Javascript 在动态添加删除行中计算行值和列值