比较R中不同长度的两列

时间:2016-06-22 18:51:05

标签: r dataframe

我正在尝试在R中实现vlookup类型功能。我有两个数据框 - Id列具有唯一值。

# DataFrame1 - df1
Data   ID       C1        C2      C3 
R1     ax       12        33      11
R2     ay       11         2       0
R3     az        3         3       0
R4     ar        2         3       1
R5     ag        2         3       1

# DataFrame2 - df2
Id
ax
ay

我想获取所有数据并从DataFrame1获取其数据,其中DataFrame2和DataFrame1之间存在匹配。

输出应为 -

Data ID C1 C2 C3
R1   ax 12 33 11
R2   ay 11  2  0

,其计数为2

此外,这可能没有合并功能吗?

2 个答案:

答案 0 :(得分:3)

要按您的第二个数据帧进行子集化,然后计算行数:

z=df1[df1$ID %in% df2$Id,]
count=nrow(z)

答案 1 :(得分:0)

使用dplyr

library(dplyr)
inner_join(df1, df2, by = c("ID" = "Id")) # Because Id columns names are different
inner_join(df1, df2) # If the Id columns were the same

使用sqldf

library(sqldf)
sqldf('SELECT * FROM df1 JOIN df2 USING (ID)') # Not case sensitive

输出:

  Data ID C1 C2 C3
1   R1 ax 12 33 11
2   R2 ay 11  2  0