Повторите задачу сразу для всех наборов данных, доступных в Global Enviroment. - PullRequest
0 голосов
/ 26 сентября 2019

В моей глобальной среде загружено около 40 или более наборов данных.Каждый набор данных имеет две колонки и 5 наблюдений, все они выглядят одинаково.Я хочу переименовать имя второго поля из Filter в Pieces_Mailed, а затем заменить 1-е наблюдение в поле теперь Pieces_Mailed значением в 5-м наблюдении, потому что оно динамическое во всех наборах данных.После этого я хочу сохранить только два столбца (Institution и Pieces_Mailed) с первым наблюдением.

Пожалуйста, используйте код ниже для создания набора данных.Графство - только один из 40+ наборов данных, которые я загрузил.В этих наборах данных все почти одинаково, за исключением obs 1 в col 1, в названии которого содержатся название учреждения, col 2, obs 5.

Я бы предпочел использовать подход Tidyverse.

County <- tibble(Institution = c("Zoe Financials","NA","Mailing Summary", "Total Households & Members", 37867),
                 Filter = c("None", "NA", "Mailing Summary", "Pieces Mailed", 59475))

County <- tibble(Institution = "Zoe Financials",
                 Filter = 59475)

1 Ответ

0 голосов
/ 26 сентября 2019

Можно было бы загрузить наборы данных в list, а затем выполнить цикл по list с lapply из base R (или map из purrr - tidyverse), select столбцампредставляет интерес (в пределах select мы также можем переименовать столбцы, если необходимо), затем replace первые значения в 'Pieces_Mailed' с пятым значением этого столбца и возвращаем наборы данных в list.Лучше хранить наборы данных в list и не назначать или создавать несколько объектов в глобальной среде, так как 1) это загромождает среду, 2) проще делать любые другие изменения / сохранять в виде файла из list, чем от объектов, рассеянных в глобальном окружении

library(tidyverse)
lst1 <- mget(ls())
lst1 <- map(lst1, ~ .x %>%
                select(Institution,  Pieces_Mailed = Filter) %>%                   
                mutate(Pieces_Mailed = replace(Pieces_Mailed, 1,  Pieces_Mailed[5])) %>%
               slice(1))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...