Я написал функцию, чтобы разбить фрейм данных, чтобы содержать только столбцы, которые я хочу построить. Теперь я хочу перебрать список фреймов данных через эту функцию, чтобы каждый отдельный фрейм данных содержал информацию, относящуюся к моему сюжету.Итерирование списка кадров данных с помощью функции
Вот функция:
clean_data <- function(show_df){
show_data <- show_df[,c(1:2,7)]
colnames(show_data) <- c("Week", "WeeklyGross", "AvgTicketPrice")
#turns WeeklyGross into Numeric values
show_data$WeeklyGross <- gsub('[^a-zA-Z0-9.]', '', show_data$WeeklyGross)
show_data$WeeklyGross <- as.numeric(show_data$WeeklyGross)
#turns AvgTicketPrice into Numeric values
show_data$AvgTicketPrice <- gsub('[^a-zA-Z0-9.]', '', show_data$AvgTicketPrice)
show_data$AvgTicketPrice <- as.numeric(show_data$AvgTicketPrice)
show_data
}
И вот мой код, когда я пытаюсь перебирать список моих кадров данных с помощью функции:
df.list <- list(atw_df, cly_df, gent_df, kin_df,
mo_df,on_df, van_df, war_df)
new_list <- list()
for (i in seq(df.list)){
new_list <- clean_data(i)
}
Я знаю, что мой цикл отсутствует что-то, но я не могу понять, что. Я хочу сохранить каждый фрейм данных из этого списка в его переработанном формате в качестве переменной, чтобы я мог использовать их для построения информации.
EDIT: сделал некоторые изменения коды, я теперь получаю неправильное количество ошибок размеров в show_df [C (1: 2, 7)]
EDIT2: больше изменений, внесенных в цикл, по-прежнему получать такое же сообщение об ошибке.
Просьба воспроизводимый пример. – user227710
Ваша функция не возвращает подмножество данных. Попробуйте добавить 'show_data' после своей последней строки. Также вы не должны использовать 'i' дважды в своем цикле for. Создайте новый список и назначьте ему новый df. – Molx
Еще два комментария: 1. Ошибка в том, что вы не отправляете df в 'clean_data', вы отправляете только' i' (сначала, вы делаете это правильно) Удалите строку 'clean_data (i)'. 2. Если вы создадите список внутри цикла for, вы будете стирать его каждый раз, когда он будет запущен. Создайте его снаружи и просто добавьте чистые dfs внутри как новый элемент ('new_list <- clean_data (i)'). – Molx