使用dplyr根据两个数据帧中一列中的公共值对数据子集
我从未真正使用过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
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是的,这里不需要它,但它可能会在一系列转换中使用