合并两个数据框中的两个字符列

时间:2016-06-22 14:24:35

标签: r dataframe character left-join dplyr

有人知道如何加入来自两个相似数据框的两个字符列吗?

我有一个数据框已经填写了部分字符列,并希望在剩余的空行中添加字符形成另一个数据框。

我的第一个数据框如下所示:

   > df1 %>% View () 
Source: local data frame [6,249 x 4]

   tripnr shootlat shootlong  area
    (dbl)    (dbl)     (dbl) (chr)
1  199801 50.50000 0.5000000      
2  199801 50.48333 0.4166667      
3  199801 50.45000 0.3500000      
4  199801 50.45000 0.3833333      
5  199801 50.41667 0.3166667      
6  199801 50.46667 0.5000000      
7  199801 50.26667 0.3333333      
8  199801 50.28333 0.2333333      
9  199801 50.35000 0.4500000      
10 199801 50.48333 0.4666667

区域列的最后一位有区域名称。

我的第二个数据框是相反的(它填写了区域名称,而df1没有):

> df2 %>% View () 
Source: local data frame [6,249 x 4]

   tripnr shootlat shootlong  area
    (dbl)    (dbl)     (dbl) (chr)
1  199801 50.50000 0.5000000  VIId
2  199801 50.48333 0.4166667  VIId
3  199801 50.45000 0.3500000  VIId
4  199801 50.45000 0.3833333  VIId
5  199801 50.41667 0.3166667  VIId
6  199801 50.46667 0.5000000  VIId
7  199801 50.26667 0.3333333  VIId
8  199801 50.28333 0.2333333  VIId
9  199801 50.35000 0.4500000  VIId
10 199801 50.48333 0.4666667  VIId

我想要做的是组合两个数据框并拥有完整的区域列表。 我尝试了left_join,但这并没有结合两个区域列:

`> df1 %>% 
+   left_join(df2, by=c( "tripnr", "shootlat", "shootlong"))
Source: local data frame [7,017 x 5]

   tripnr shootlat shootlong area.x area.y
    (dbl)    (dbl)     (dbl)  (chr)  (chr)
1  199801 50.50000 0.5000000          VIId
2  199801 50.48333 0.4166667          VIId
3  199801 50.45000 0.3500000          VIId
4  199801 50.45000 0.3833333          VIId
5  199801 50.41667 0.3166667          VIId
6  199801 50.46667 0.5000000          VIId
7  199801 50.26667 0.3333333          VIId
8  199801 50.28333 0.2333333          VIId
9  199801 50.35000 0.4500000          VIId
10 199801 50.48333 0.4666667          VIId`

有办法做到这一点吗?

万分感谢!

1 个答案:

答案 0 :(得分:0)

试试这个

df3 <- merge(df1,df2, all = T)