У меня есть набор фреймов данных с именами df_1968, df_1969, df_1970, ..., df_2016, собранных в список под названием my_list. Я хочу добавить новый столбец в каждом из этих фреймов данных, который просто является текущим годом (1968 в df_1968 и так далее). Мне удалось сделать это, просматривая фреймы данных, но я ищу более аккуратное решение. Я пробовал следующее:
# Function to extract year from name of data frames
substrRight <- function(y, n) {
substr(y, nchar(y) - n + 1, nchar(y))
}
# Add variable "year" equal to 1968 in df_1968 and so on
my_list <- lapply(my_list, function(x) cbind(x, year <- as.numeric(substrRight(names(x), 4 ))))
Однако это выдает ошибку:
Error in data.frame(..., check.names = FALSE) :
arguments imply differing numbers of rows: 18878, 7
Я вижу, что способ присвоения значения переменной, вероятно, не имеет смысла, но не могу обернуть голову, как это сделать вместо этого. Помощь приветствуется.
Обратите внимание, что функция substrRight работает идеально и что
as.numeric(substrRight(names(x), 4 ))
дает вектор 1968-2016