#r #dataframe #dplyr
Вопрос:
Например, у меня есть такой фрейм данных df1
, и я разделил его на 5 частей, как в z
set.seed(123)
df1 <- data.frame(x = c("A","C","B","D","E","F","G","H","L","K","P","T") ,y = runif(12))
df1
p <- 5
n <- nrow(df1)
z <- split(df1, cummax(as.numeric(gl(p, n%/%p, n))))
И у меня есть другой фрейм данных df2
:
df2 <- data.frame(
emp_name = c("A","B","C","D","E"),
salary = c(623.3,515.2,611.0,729.0,843.25))
Теперь я хочу отфильтровать df2$emp_name
на основе x
значений в z
. Например, я хочу отфильтровать df2$emp_name
на основе значений x в z[["1"]]
Если z
бы был фрейм данных, я знаю, что могу использовать filter <- subset(df2, emp_name %in% z$x)
, но я не знаю, как это сделать, где z
список вместо фрейма данных.
Спасибо и ценю ваш ответ.
Ответ №1:
На самом деле, вот ответ, но не крутой
library(dplyr)
for(vi in 1:length(z)){
print(subset(df2, df2$emp_name %in% z[[vi]]$x))
}
Если вы хотите получить все результаты, составьте пустой список