Как я могу обновить несколько наборов данных с помощью mutate? - PullRequest
0 голосов
/ 28 февраля 2019

У меня есть наборы данных с именами в формате df_1, df_2, df_3, ... и я хочу изменить столбец x этих фреймов данных, я попытался сделать это в некотором роде, и это не сработало, нижеодин из них:

dfs <- ls(pattern = "df")
    for(i in 1:(length(dfs))){
      eval(parse(text = (dfs[i]))) <- eval(parse(text = dfs[i])) %>% mutate(x = str_pad(x, width = 8, pad = "0")
    }

Возвращает следующую ошибку:

Error in file(filename, "r") : cannot open the connection
In addition: Warning message:
In file(filename, "r") :
cannot open file 'df_1': No such file or directory

Я также попытался создать список с фреймами данных и выполнить итерации по нему, но он также не работал.

Какие-нибудь предложения для простого способа сделать это?

1 Ответ

0 голосов
/ 28 февраля 2019

Получите все наборы данных в list с помощью mget, затем выполните цикл по list с map и mutate в столбце 'x' в list

library(tidyverse)
lst1 <- mget(ls(pattern = "^df_\\d+")) %>%
           map(~ .x %>% 
              mutate(x = str_pad(x, width = 8, pad = "0")))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...