R 合并行重复的两个数据帧
我有两个数据帧,其中第一个df1有重复的行。我想用df2找到它,以得到想要的结果df3R 合并行重复的两个数据帧,r,R,我有两个数据帧,其中第一个df1有重复的行。我想用df2找到它,以得到想要的结果df3 >df1 Months A B C 1 Jan 4 NA 0 2 Feb 6 NA 0 3 Mar 9 NA 21 4 Jan NA 1 NA 5 Feb NA 0 NA 6 Mar NA 6 NA
>df1
Months A B C
1 Jan 4 NA 0
2 Feb 6 NA 0
3 Mar 9 NA 21
4 Jan NA 1 NA
5 Feb NA 0 NA
6 Mar NA 6 NA
>df2
Months D E F
1 Jan 1 1 0
2 Feb 2 1 0
3 Mar 3 1 0
我想合并df1和df2,删除df1中重复的行。df3是我想要的结果。谢谢
>df3
Months A B C D E F
1 Jan 4 1 0 1 1 0
2 Feb 6 0 0 2 1 0
3 Mar 9 6 21 3 1 0
df1 >
structure(list(Months = c("Jan", "Feb", "Mar", "Jan", "Feb", "Mar"), A = c("4", "6", "9", "NA",
"NA", "NA"), B = c("NA", "NA",
"NA", "1", "0", "6"), C = c("0", "0", "21", "NA", "NA", "NA")), row.names = c(NA,
-6L), class = c("tbl_df", "tbl", "data.frame"))
df2 >
structure(list(Months = c("Jan", "Feb", "Mar"), D = c(1, 2, 3
), E = c(1, 1, 1), F = c(0, 0, 0)), row.names = c(NA, -3L), class = c("tbl_df",
"tbl", "data.frame"))
实际上,数据中有字符串NA,而不是实际的NA值。尝试从df1中的列中删除NA值,然后将其与df2连接
实际上,数据中有字符串NA,而不是实际的NA值。尝试从df1中的列中删除NA值,然后将其与df2连接
library(dplyr)
df1 %>%
group_by(Months) %>%
summarise(across(A:C, ~.[. != 'NA'])) %>%
inner_join(df2, by = 'Months')
# Months A B C D E F
# <chr> <chr> <chr> <chr> <dbl> <dbl> <dbl>
#1 Feb 6 0 0 2 1 0
#2 Jan 4 1 0 1 1 0
#3 Mar 9 6 21 3 1 0