我扫描stackoverflow超过一个小时才找到解决方案,但失败了。所以发布问题。
我有一个数据框,我需要删除重复项,但诀窍是,重复的值可以在两个不同的列中用于单独的行。我需要删除另一列具有NA值的行。
示例数据框
Act Func Func_2
generate numbers odd
generate numbers and
generate print <NA>
generate column print
displays time <NA>
displays date time
displays print time
displays task <NA>
由于Func和Func_2中的打印都存在于两行中具有相同的Act值,因此我需要删除Func_2中存在NA的行。 但是,如果Act列中的值不同,我需要保留两行。
预期数据框
Act Func Func_2
generate numbers odd
generate numbers and
generate column print
displays date time
displays print time
displays task <NA>
答案 0 :(得分:1)
在这里试试这个:
df1 %>% group_by(Act) %>% # the following test will be done by group
mutate(test = if_else(Func %in% Func_2,
if_else(is.na(Func_2), FALSE, TRUE),
TRUE)) %>%
#this will create a logical helper column.
filter(test == TRUE) #just for completeness
# A tibble: 6 x 4
# Groups: Act [2]
Act Func Func_2 test
<chr> <chr> <chr> <lgl>
1 generate numbers odd T
2 generate numbers and T
3 generate column print T
4 displays date time T
5 displays print time T
6 displays task <NA> T
答案 1 :(得分:0)
这是你之后的事吗?
library(dplyr)
制作数据框:
a <- c(1, 2, 3, 4)
b <- c(5, 6, NA, 7)
df <- data.frame(a, b)
过滤行以确保两列都不丢失:
df <- filter(df, !is.na(a) & !is.na(b))