使用dplyr根据两个数据帧中一列中的公共值对数据子集

使用dplyr根据两个数据帧中一列中的公共值对数据子集,r,dataframe,dplyr,R,Dataframe,Dplyr,我从未真正使用过dplyr,我想知道如何在下面的上下文中使用它。因此,我有以下两个数据帧: trainData <- read.csv("train.csv", header = TRUE, stringsAsFactors = FALSE) subscriptionData <- read.csv("subscriptions.csv", header = TRUE, stringsAsFactors = FALSE) > head(trainData) a

我从未真正使用过dplyr,我想知道如何在下面的上下文中使用它。因此,我有以下两个数据帧:

 trainData <- read.csv("train.csv", header = TRUE, stringsAsFactors = FALSE)
 subscriptionData <- read.csv("subscriptions.csv", header = TRUE, stringsAsFactors = FALSE)
> head(trainData)
       account.id total
1 001i000000NuOGY     0
2 001i000000NuS8r     0
3 001i000000NuPGw     0
4 001i000000NuO7a     0
5 001i000000NuQ2f     0
6 001i000000NuOQz     0

> head(subscriptionData)
       account.id    season package no.seats          location           section price.level total multiple.subs
1 001i000000LhyR3 2009-2010 Quartet        2     San Francisco Premium Orchestra           1   1.0            no
2 001i000000NuOeY 2000-2001    Full        2     San Francisco         Orchestra           2   2.0            no
3 001i000000NuNvb 2001-2002    Full        2 Berkeley Saturday     Balcony Front           3   2.0            no
4 001i000000NuOIz 1993-1994 Quartet        1      Contra Costa         Orchestra           2   0.5            no
5 001i000000NuNVE 1998-1999    Full        2   Berkeley Sunday      Balcony Rear           4   2.0            no
列车数据头(下标数据)
account.id季节套餐号座位位置部分价格级别总计多个SUB
1 00 1I000 00 LHYR3 2009-2010四重奏2旧金山高级乐团1
2000年1月1日2,2001年2全旧金山乐团2,2
3 001i000000NuNvb 2001-2002完整2伯克利星期六阳台正面3 2.0号
4 001i000000NuOIz 1993-1994四重奏1康特拉科斯塔管弦乐团2 0.5号
5 001I000000Nurve 1998-1999完整2伯克利周日阳台后部4 2.0号
现在我想根据
trainData
account.id
获取
subscriptionData
的子集。我基本上希望使用
account.id
获取
subscriptionData
的子集,它们也存在于
列车数据中

我知道这是一个非常基本的问题,但我是一个全新的dplyr,没有任何线索

您想要半联接:

subscriptionData %>% semi_join(trainData, by = "account.id")
您想要半联接:

subscriptionData %>% semi_join(trainData, by = "account.id")

subscriptionData%>%过滤器(account.id%在%trainData$account.id中)
假设id是唯一的。@hmi您可以使用
internal\u join
internal\u join(subscriptionData,trainData[,'account.id',drop=FALSE],by='account.id')
谢谢大家。解决方法:)
subscriptionData%>%filter(account.id%在%trainData$account.id中)
假设id是唯一的。@hmi您可以使用
internal\u join
internal\u join(subscriptionData,trainData[,'account.id',drop=FALSE],by='account.id')
谢谢大家。解决了:)@Burimi,嗯?这确实回答了问题。省得再键入一点愚蠢的管道符号:
semi_join(subscriptionData,trainData,by=“account.id”)
-我的意思是,当你链接一堆管道时,管道是可爱的,但不要被管道钩住。@Spacedman是的,这里不需要,但它很可能被用于一系列transformations@Burimi呵呵?这确实回答了问题。省得再键入一点愚蠢的管道符号:
semi_join(subscriptionData,trainData,by=“account.id”)
-我的意思是,当你链接一堆管道时,管道是可爱的,但不要被管道钩住。@Spacedman是的,这里不需要它,但它可能会在一系列转换中使用