【发布时间】:2019-09-26 12:05:59
【问题描述】:
我有一个数据框,我想根据不同数据框中的信息对其进行子集化。
例如,我有一个 x、y 和 z 值不同的 df:
df <- expand.grid(x=1:5,y=10:12,z=c('a','b'))
我想从这个 df 中对所有具有 y=10 和 z=a 或 y=11 和 z=a 的值进行子集化。我用于子集的信息在数据框中:
filter_vector2 <- expand.grid(y=10:11,z='a')
> filter_vector2
y z
1 10 a
2 11 a
当我根据一列的内容进行过滤时,我通常会创建一个向量并使用 %in% 函数:
filter_vector1 <- c(y=10,y=11)
filtered_data <- df %>%
filter(y %in% filter_vector1)
但是,如何根据 filter_vector2 中的列组合应用过滤器选择?
【问题讨论】:
-
只需
merge或join,因为两者实际上都是数据帧。 -
filtered_data % inner_join(filter_vector2) 成功了!