【发布时间】:2014-11-03 03:26:15
【问题描述】:
我从未真正使用过 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
现在我想根据trainData 的account.id 获取subscriptionData 的子集。我基本上想采用account.id 的subscriptionData 的子集,它们也存在于trainData 中。
我知道这是一个非常基本的问题,但我是全新的 dplyr 并且不知道。
【问题讨论】:
-
subscriptionData %>% filter(account.id %in% trainData$account.id)假设 id 是唯一的。 -
@hmi 你可以使用
inner_join,即inner_join(subscriptionData, trainData[,'account.id',drop=FALSE], by='account.id') -
谢谢大家。解决了:)