我编写了一个删除数据框的函数,只包含我想要绘制的列。我现在想通过该函数迭代一个数据帧列表,这样每个单独的数据帧只包含与我的情节相关的信息。
这是功能:
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)
}
我知道我的循环遗漏了一些东西,但我无法弄清楚是什么。我想将该列表中的每个数据框以其修改后的格式存储为变量,以便我可以使用它们来绘制信息。
编辑:进行了一些代码更改,我现在收到的show_df [,c(1:2,7)中的尺寸错误数量错误
EDIT2:对for循环进行了更多更改,仍然收到相同的错误消息。
答案 0 :(得分:1)
获得功能和列表后,只需执行
即可new_list <- lapply(df.list, clean_data)
对于clean_data
中的每个数据框,将调用df.list
一次,并返回新清除的数据框列表。
因此你的整个&#34;循环&#34;变
df.list <- list(atw_df, cly_df, gent_df, kin_df,
mo_df,on_df, van_df, war_df)
new_list <- lapply(df.list, clean_data)