Как переименовать один столбец в нескольких фреймах данных в имя фрейма данных, в котором они находятся в R? - PullRequest
0 голосов
/ 06 ноября 2019

В настоящее время я пытаюсь переименовать один столбец в нескольких фреймах данных в соответствии с именем фрейма данных в R.

Я видел на сайте несколько вопросов / решений, которые похожи на то, что я пытаюсь сделать,но никто не делает это динамически. У меня более 45 фреймов данных, в которых нужно переименовать столбец, поэтому ввод вручную каждого отдельного имени возможен, но требует много времени.

Dataframe1 <- column
Dataframe2 <- column
Dataframe3 <- column


I want it to look like this:
Dataframe1 <- Dataframe1
Dataframe2 <- Dataframe2
Dataframe3 <- Dataframe3


The ultimate goal is to have a master dataframe with columns Dataframe1, Dataframe2, and Dataframe3

1 Ответ

0 голосов
/ 06 ноября 2019

Мы можем получить все наборы данных в list и переименовать сразу в list

lst1 <- lapply(mget(ls(pattern = "Dataframe\\d+")), function(x) {
             names(x)[5] <- "newcol"
             x})

Обновление

Если мы переименовываем столбцы в разных наборах данных с разнымиnames, а затем создайте вектор имен столбцов, который соответствует имени каждого столбца Dataframe

nm1 <- c("col5A", "col5B", "col5C", ..., "col5Z")
lst2 <- Map(function(x) {names(x)[5] <- y; x}, 
         mget(ls(pattern = "Dataframe\\d+")),
           nm1)

В приведенном выше коде мы переименовываем 5-й столбец в newcol.


Это также можно сделать, используя tidyverse

library(dplyr)
library(purrr)
map(mget(ls(pattern = "Dataframe\\d+")), ~ .x %>%
            rename_at(5, ~ "newcol"))
...