我有两个不同长度的数据框,包含以下变量:
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。
更新:问题是编写状态的不同方式。谢谢你的帮助。
答案 0 :(得分:0)
使用合并:
merge(df1,df2, by=c("County","State"))