Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typo3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R 合并行重复的两个数据帧_R - Fatal编程技术网

R 合并行重复的两个数据帧

R 合并行重复的两个数据帧,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有重复的行。我想用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



   >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