r - 根据另一列中的条件删除重复行
问题描述
假设我有这个数据框:
df <- data.frame(
a = c(NA,6,6,8),
x= c(1,2,2,4),
y = c(NA,2,NA,NA),
z = c("apple", 2, "2", NA),
d = c(NA, 5, 5, 5),stringsAsFactors = FALSE)
第 2 行和第 3 行是重复的,第 3 行具有 NA 值。我想删除具有 NA 值的重复行,使其看起来像这样:
df <- data.frame(
a = c(NA,6,8),
x= c(1,2,4),
y = c(NA,2,NA),
z = c("apple", 2, NA),
d = c(NA, 5, 5),stringsAsFactors = FALSE)
我试过这个但它不起作用:
df2 <- df %>% group_by (a,x,z,d) %>% filter(y == max(y))
有什么建议么?
解决方案
df %>%
arrange_all() %>%
filter(!duplicated(fill(., everything())))
a x y z d
1 NA 1 NA apple NA
2 6 2 2 2 5
3 8 4 NA <NA> 5
推荐阅读
- xaml - 如何在 ListView 上使用 CanContentRenderOutsideBounds
- python - Python - Mysqldb 安装错误 [错误:命令错误退出状态为 1:]
- python - 使用 Reticulate 在 R Markdown 中的 Python 打印查询
- python - 使用 AWK 更正大型数据集?
- python - 需要帮助了解如何使用 plotly 绘制 3d 曲面图
- reactjs - Bootstrap-table 使用 Firebase 实时数据库显示“No matching records found”和 bootstrap-table 中的记录
- android - 为什么我的代码在转换为 smali 时会抛出此错误?
- javascript - TinyMCE 为每页导出带有页脚的 pdf
- c++ - 如何计算方向矢量以避开附近的代理
- boolean - 如何证明 A'B' + B = A'+B