Объедините рабочий процесс Data Wrangling в одну функцию - PullRequest
0 голосов
/ 13 февраля 2020

У меня есть список фреймов данных, где я хочу выполнить некоторые операции обработки данных. За каждый год я получаю новый список data.frames

results_2018 <- list_of_objects %>%
    map(~dplyr::top_n(.x, 10, Germany)) %>%
    map(~rename(.x, "Answers" = "Answer.Options"))

results_2019 <- list_of_objects_2 %>%
    map(~dplyr::top_n(.x, 10, Germany)) %>%
    map(~rename(.x, "Answers" = "Data.Points"))

Это мой код, где я вычисляю 10 лучших значений для каждого года для одной страны. Так как в истории 10 лет, есть ли способ объединить эти вычисления в одну функцию? Я думаю, map2 и pmap могли бы сделать эту работу, но я не могу понять, как это работает.

Может кто-нибудь помочь мне? (извините за отсутствие воспроизводимых данных, наборы данных довольно большие)

1 Ответ

1 голос
/ 13 февраля 2020

Вы можете попробовать:

library(tidyverse)

list_obj <- list(list_of_objects, list_of_objects_2, ..., ..)
#If there are lot of them use
#list_obj <- mget(ls(pattern = 'list_of_objects\\d+'))

output <- map(list_obj, ~map(.x, function(x) 
           x %>% top_n(10, Germany) %>% rename("Answers" = "Answer.Options"))

Это вернет вам список списков, возможно, будет полезно использовать map_df для внутреннего map.

map(list_obj, ~map_df(.x, function(x) 
           x %>% top_n(10, Germany) %>% rename("Answers" = "Answer.Options"))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...