Как получить подмножества для нескольких фреймов данных одновременно? - PullRequest
4 голосов
/ 28 января 2020

У меня есть 100 наборов данных о данных для 100 различных местоположений.

Я хочу получить подмножество одинаковых переменных для каждого набора данных. Что-то вроде:

dataset1<-subset(dataset1, which(gender=='F'))
dataset2<-subset(dataset2, which(gender=='F'))
dataset3<-subset(dataset3, which(gender=='F'))
dataset4<-subset(dataset4, which(gender=='F'))

.....

Как я могу сделать все 100 наборов данных одновременно вместо 100 строк?

Ответы [ 2 ]

5 голосов
/ 28 января 2020

Вы можете поместить набор данных в список, а затем использовать subset для каждого, используя lapply

list_df <- lapply(mget(paste0('dataset', 1:100)),function(x) subset(x, gender=='F'))

Лучше сохранить данные в списке, но при необходимости в виде отдельных фреймов данных мы можем используйте list2env

list2env(list_df,.GlobalEnv)
2 голосов
/ 28 января 2020

Мы можем использовать map от purrr

library(dplyr)
library(purrr)
library(stringr)
list_df  <- mget(str_c("dataset", 1:100)) %>%
                   map(~ .x %>%
                               filter(gender == "F"))
list2env(list_df, .GlobalEnv)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...