пример данных
metro_2005_1 <- data.frame(col1 = 1:5, col2 = 6:10)
metro_2006_1 <- data.frame(col1 = 1:3, col2 = 4:6)
У меня есть 20 фреймов данных, каждый из которых назван в следующем формате, где x - это число 1-9:
metro_20XX_X
Я пытаюсь извлечь среднюю часть в новый столбец и написал функцию, которая работает при применении к каждому фрейму данных отдельно, называемую addYear.
addYear <- function(metro){
metro_name <- deparse(substitute(metro))
metro <- metro %>% mutate(Year = substr(metro_name,7,10))
return(metro)
}
example <- addYear(metro_2005_1)
str(example)
'data.frame': 5 obs. of 3 variables:
$ col1: int 1 2 3 4 5
$ col2: int 6 7 8 9 10
$ Year: chr "2005" "2005" "2005" "2005"
Я добавил все 20 своих фреймов данных в список с именем metro_append_year и попытался применить функцию addYear ко всем 20 фреймам данных, используя lapply. Однако, когда я проверяю «результат», столбец года создается в каждом из моих кадров данных, но пустой.
metro_append_year <- list(metro_2005_1, metro_2006_1)
result <- lapply(metro_append_year,addYear)
str(result[[1]])
'data.frame': 5 obs. of 3 variables:
$ col1: int 1 2 3 4 5
$ col2: int 6 7 8 9 10
$ Year: chr "" "" "" ""