r-使用dplyr根据两个数据帧中一列中的公共值对数据进行子集处理



我从未真正使用过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

现在我想在trainDataaccount.id的基础上取subscriptionData的子集。我基本上想取subscriptionDataaccount.id的子集,它们也存在于trainData中。

我知道这是一个非常基本的问题,但我是一个全新的dplyr,对此一无所知。

您想要一个半联接:

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

最新更新