使用列表子集大数据框

时间:2018-10-23 04:26:54

标签: r list subset

我有一个很大的数据框,我想使用一系列因素进行子集设置,但不知道如何操作。

这是我的数据框;

I_have <- data.frame(
  Company_id = as.factor(c(1006,1007,1123,1556,2000,2006,1200,1277,1266)),
  Value = c(5,6,3,7,9,11,12,17,16))

这是我希望作为子公司的公司列表;

Companies_needed <- data.frame(Company_id = as.factor(c(1123,1556,2000, 1200)))

这就是我想要的;

I_want <- data.frame(
  Company_id = as.factor(c(1123,1556,2000,1200)),
  Value = c(3,7,9,12))

我的真实数据在“ I_have” 数据框中有500,000行,而“ Companies_needed” 则有7,000行,因此无法键入所有组合,因此必须使用数据框作为子集的列表。

1 个答案:

答案 0 :(得分:1)

如上所述,请使用%in%

I_have[I_have$Company_id %in% Companies_needed$Company_id,]

或与dplyr

dplyr::inner_join(I_have, Companies_needed, by = "Company_id")