在R中,基于匹配的行值将数据从一个数据帧提取到另一个数据帧

时间:2013-03-08 14:59:17

标签: r merge dataframe

以下是我要做的简化版本(概念相同,数据不同)

我有两个不同长度的数据框。

DF1有两列(名称和州名缩写)和1,000行

DF2有两列(州名缩写和州名)和50行

在DF1中,我想添加一个名为State Name

的列

我希望R查看DF1中的State Abbreviation,然后在DF2中找到相应的State Name(使用DF2中的State Abbreviation列)

请注意,DF1中的新列可以被称为任何

1 个答案:

答案 0 :(得分:2)

您可以使用?merge

> df1 <- data.frame(name=c('n1','n2','n3','n4'), state.abbr=c('s1','s2','s2','s1'))
> df2 <- data.frame(state.abbr=c('s1','s2'), state.name=c('state 1', 'state 2'))
> merge(df1, df2)
  state.abbr name state.name
1         s1   n1    state 1
2         s1   n4    state 1
3         s2   n2    state 2
4         s2   n3    state 2