首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >R中两根不同长度柱的比较

R中两根不同长度柱的比较
EN

Stack Overflow用户
提问于 2016-06-22 18:51:04
回答 2查看 3.1K关注 0票数 1

我试图在R中实现vlookup类型的功能,我有两个数据帧- Id列具有唯一的值。

代码语言:javascript
代码运行次数:0
运行
复制
# 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的Ids之间存在匹配。

产出应是-

代码语言:javascript
代码运行次数:0
运行
复制
Data ID C1 C2 C3
R1   ax 12 33 11
R2   ay 11  2  0

它的数量将是2

而且,如果没有合并函数,这可能吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-06-22 19:00:17

若要在第二个数据中对第一个数据进行子集,请计数行数:

代码语言:javascript
代码运行次数:0
运行
复制
z=df1[df1$ID %in% df2$Id,]
count=nrow(z)
票数 3
EN

Stack Overflow用户

发布于 2016-06-22 20:57:34

使用dplyr

代码语言:javascript
代码运行次数:0
运行
复制
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

代码语言:javascript
代码运行次数:0
运行
复制
library(sqldf)
sqldf('SELECT * FROM df1 JOIN df2 USING (ID)') # Not case sensitive

输出:

代码语言:javascript
代码运行次数:0
运行
复制
  Data ID C1 C2 C3
1   R1 ax 12 33 11
2   R2 ay 11  2  0
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37976093

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档