У меня есть список фреймов данных в R. Что мне нужно сделать, это применить функцию к каждому файлу данных, в этом случае удалить специальные символы и вернуть список dataframes.Эффективный способ применения функции по списку dataframes
Использование lapply
и as.data.frame
следующие прекрасно работает и обеспечивает именно то, что мне нужно:
my_df =data.frame(names = seq(1,10), chars = c("abcabc!!", "abcabc234234!!"))
my_list = list(my_df, my_df, my_df)
#str(my_list)
List of 3
$ :'data.frame': 10 obs. of 2 variables: ...
new_list <- lapply(my_list, function(y) as.data.frame(lapply(y, function(x) gsub("[^[:alnum:][:space:]']", "", x))))
# str(new_list)
List of 3
$ :'data.frame': 10 obs. of 2 variables:
..$ names: Factor w/ 10 levels "1","10","2","3",..: 1 3 4 5 6 7 8 9 10 2
..$ chars: Factor w/ 2 levels "abcabc","abcabc234234": 1 2 1 2 1 2 1 2 1 2
$ :'data.frame': 10 obs. of 2 variables:
..$ names: Factor w/ 10 levels "1","10","2","3",..: 1 3 4 5 6 7 8 9 10 2
..$ chars: Factor w/ 2 levels "abcabc","abcabc234234": 1 2 1 2 1 2 1 2 1 2
$ :'data.frame': 10 obs. of 2 variables:
..$ names: Factor w/ 10 levels "1","10","2","3",..: 1 3 4 5 6 7 8 9 10 2
..$ chars: Factor w/ 2 levels "abcabc","abcabc234234": 1 2 1 2 1 2 1 2 1 2
Но мне интересно, если есть более эффективный способ, который не требует вложенных lapply
. Возможно, другая функция apply-family, которая возвращает элементы в качестве фреймворка данных?
Спасибо, akrun (и за введение меня в функцию преобразования). –