繁体   English   中英

将具有相同列的两个数据框合并为一个数据框,并将其中一个合并

[英]Merge two data frames with identical columns into a data frame and combine one of the

我有两个相同样式的 dataframe,我想将它们合并到具有相同列的 dataframe 中,同时还组合其中一列。

这两个数据框如下所示:

    year variable
1  1968    2
2  1969    5
3  1970    <NA>
4  1971    <NA>
5  1972    <NA>

    year variable
1  1968    <NA>
2  1969    <NA>
3  1970    5
4  1971    7
5  1972    <NA>

最后我想得到一个如下所示的数据框:

    year variable
1  1968    2
2  1969    5
3  1970    5
4  1971    7
5  1972    <NA>

提前致谢!

使用来自dplyr的合并:

df1 <- bind_cols(year = seq(1968, 1972, 1),
                 variable = c(2, 5, NA, NA, NA))

df2 <- bind_cols(year = seq(1968, 1972, 1),
                 variable = c(NA, NA, 5, 7, NA))


left_join(df1, df2, by='year') %>% 
  mutate(
    variable = coalesce(variable.x, variable.y)
  ) %>% 
  select(year, variable)

您可以使用 dplyr package,并删除 NA。 首先你需要转换成合适的NA

df1 <- data.frame(year = c(1968,1969,1970,1971,1972),
                 variable = c(2,5,'<NA>', '<NA>', '<NA>'))

df2 <- data.frame(year= c(1968,1969,1970,1971,1972),
                  variable = c('<NA>', '<NA>', 5, 7, '<NA>'))

library(dplyr)
df1 <- df1 %>%
  mutate(variable = ifelse(variable == "<NA>", NA, variable))
df2 <- df2 %>%
  mutate(variable = ifelse(variable == "<NA>", NA, variable))
df_m <- full_join(df1,df2) %>%
  na.omit(variable)

您可以使用合并,但我更喜欢 tidyverse。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM