将df中的值添加到更长的df

时间:2016-10-19 13:47:24

标签: r

我有两个不同长度的数据框,包含以下变量:

df1:州,县,收入,年龄

df2(较长的一个):Zip.Code,State,County

因此df1为State&组合的每个组合都有一个唯一的条目。县和df2可以有几个不同的邮政编码。

我正在尝试将df1中的收入和年龄分配到df2中的每一行(Zip.Code)。 我试过了:

dplyr:: left_join(df2, df1, by=c("STATE", "COUNTY"))

df2$Income <- NA 
df2$Age <- NA

for (i in 1:length(df2$Zip.Code)){
  for (j in 1:length(df1$STATE)){
if (df2$STATE[i]== df1$STATE[j] & df2$COUNTY[i]== df1$COUNTY[j]){
df2$Age[i] <- df1$Age[j]
df2$Income[i] <- df1$Income[j]
 }
}}

这是所有收入和年龄的NA。

更新:问题是编写状态的不同方式。谢谢你的帮助。

1 个答案:

答案 0 :(得分:0)

使用合并:

merge(df1,df2, by=c("County","State"))