R 操作具有公共字段的两个数据帧

R 操作具有公共字段的两个数据帧,r,merge,dataframe,R,Merge,Dataframe,我有两个数据集。一个只有注册号(a),另一个在注册号(B)旁边有注册号列表和型号 A A B 我想知道如果A中的注册号等于B中的注册号,型号是什么 我目前使用: if(A$Aircraft.reg.num -> B$Reg.){ model <- reg.no$Aircraft.Model } if(A$Aircraft.reg.num->B$reg.){ model您可以使用plyr包中的join函数将is用作excel中的一种VLOOKUP library(plyr) newd

我有两个数据集。一个只有注册号(a),另一个在注册号(B)旁边有注册号列表和型号

A

A

B

我想知道如果A中的注册号等于B中的注册号,型号是什么

我目前使用:

if(A$Aircraft.reg.num -> B$Reg.){
model <- reg.no$Aircraft.Model
}
if(A$Aircraft.reg.num->B$reg.){

model您可以使用plyr包中的join函数将is用作excel中的一种VLOOKUP

library(plyr)
newdf <- join(A,B[,1], by = "aircraft.reg.num", type = "left join")
库(plyr)

newdf您可以在plyr包中使用join函数来使用is作为excel中的一种VLOOKUP

library(plyr)
newdf <- join(A,B[,1], by = "aircraft.reg.num", type = "left join")
库(plyr)

newdf还可以使用
sqldf
包。它允许对数据帧进行SQL风格的查询

library(sqldf)
df <- sqldf('SELECT A."aircraft.reg.num", B."Aircraft.Model"
              FROM A INNER JOIN B ON A."aircraft.reg.num" = B."Reg."')
库(sqldf)

df还可以使用
sqldf
包。它允许对数据帧进行SQL风格的查询

library(sqldf)
df <- sqldf('SELECT A."aircraft.reg.num", B."Aircraft.Model"
              FROM A INNER JOIN B ON A."aircraft.reg.num" = B."Reg."')
库(sqldf)

df您可能需要
merge
而不是if语句使其成为a。使用
dput()
转储数据帧以便我们可以实际编写代码。您可能需要
merge
而不是if语句使其成为a。使用
dput()
转储数据帧,以便我们可以实际编写代码。@G.Grothendieck,谢谢。我应该知道这一点。我经常使用它enough@G.Grothendieck,谢谢。我早该知道的。我经常用它