合并数据框时如何避免重复值?

How to avoid repeating values when merging data frames?

我有两个数据框:

df1:  
Year       Name1    Value1
1 1967     Fallow 47.2730
2 1967 Cultivated 52.5090
3 1967  Grassland 57.5399
4 1967  Shrubland 61.3711
5 1967   Woodland 62.1911
6 1960   Fallow-w 42.2146

and df2: 
 Year       Name2   Value2
1 1967     Fallow 47.2718
2 1967 Cultivated 52.4988
3 1967  Grassland 56.8066
4 1967  Shrubland 59.3636
5 1967   Woodland 56.3803
6 1967   Fallow-w 42.1898

我想合并两个dfs,除了Values,它们是一样的。我这样做了:

df_all = merge(df1, df2, by = 'Year') 

但它只保留复制一帧的行值并像这样结束:

  Year    Name1 Value1      Name2 Value2
1 1967  Fallow  47.273     Fallow 47.2718
2 1967  Fallow  47.273 Cultivated 52.4988
3 1967  Fallow  47.273  Grassland 56.8066
4 1967  Fallow  47.273  Shrubland 59.3636
5 1967  Fallow  47.273   Woodland 56.3803
6 1967  Fallow  47.273   Fallow-w 42.1898

我做错了什么?

如果我没有正确理解你的问题,我认为你需要加入: left_join(df1, df2, by = c('Year', 'Name1'= 'Name2'))

这将匹配 YearName 的值。您的合并实际上只是在 Year 而不是名称上进行连接,这就是为什么它在右侧复制这些列的原因。

如果两个 df 完全相同,除了您可以尝试的值:

df_all=merge(df1, df2, by=c("Year","Name"))

请注意,如果 Name1 和 Name2 具有相同的名称(上面的名称),则更容易。