У меня есть список фрейма данных с различным количеством столбцов и имен (например, A). Я хочу изменить имя столбца для каждого фрейма данных в списке на основе другого фрейма данных (т. Е. B)
Фрейм данных B данных имеет 2 поля. 1) Colname и 2) Измененное имя столбца
Я хочу сравнить имя столбца из фрейма данных B с каждым фреймом даты в списке A и переименовать с измененным именем столбца.
На основеВ некоторых предыдущих ответах я попытался изменить имена столбцов, как показано ниже, и не смог получить желаемый результат.
names(A[[1]]) <- B[match(names(A[[1]]),B[,"Modified column name"]),"Colname"]
Далее, я хочу повторить это для всех фреймов данных в списке, чтобы переименоватьИмя столбца на основе фрейма данных B.
Обновлено:
Список фрейма данных (A) выглядит следующим образом
list(structure(list(i_id = c(1, 2, 3, 4, 5), i_reason = c("Event off",
"Event on", "lock", "invalid", "valid"), i_name = c("A", "B",
"C", "D", "E")), row.names = c(NA, -5L), class = c("tbl_df",
"tbl", "data.frame")), structure(list(id = c(6, 7, 8, 9, 10),
reasoncode = c("Event off", "Event on", "lock", "invalid",
"valid"), `first name` = c("A", "B", "C", "D", "E")), row.names = c(NA,
-5L), class = c("tbl_df", "tbl", "data.frame")), structure(list(
identifier = c(11, 12, 13, 14, 15), reasoncode = c("Event off",
"Event on", "lock", "invalid", "valid"), `sur name` = c("A",
"B", "C", "D", "E")), row.names = c(NA, -5L), class = c("tbl_df",
"tbl", "data.frame")))
Икадр данных (B) с измененными именами выглядит следующим образом:
structure(list(Colname = c("i_id", "i_reason", "i_name", "id",
"reasoncode", "first name", "identifier", "reasoncode", "sur name"
), `Modified column name` = c("ID", "Reason", "Name", "ID", "Reason",
"Name", "ID", "Reason", "Name")), row.names = c(NA, -9L), class = c("tbl_df",
"tbl", "data.frame"))
И желаемый результат будет:
structure(list(ID = c(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12,
13, 14, 15), Reason = c("Event off", "Event on", "lock", "invalid",
"valid", "Event off", "Event on", "lock", "invalid", "valid",
"Event off", "Event on", "lock", "invalid", "valid"), Name = c("A",
"B", "C", "D", "E", "A", "B", "C", "D", "E", "A", "B", "C", "D",
"E")), row.names = c(NA, -15L), class = c("tbl_df", "tbl", "data.frame"))