如何删除 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 值和上面和下面的行的主要内容,如果未能解决你的问题,请参考以下文章