在R语言中为Excel工作簿的每个工作表创建对应数据框
为Excel每个工作表创建对应命名的数据框(df1、df2...)
你的需求是给Input_Data.xlsx的每个工作表生成独立命名的数据框(如df1对应工作表1、df2对应工作表2),但现有代码是把数据存入列表df的元素中,并没有生成你需要的独立变量。
修正后的代码
library(readxl) # 自动获取工作簿的工作表数量,避免硬编码 sheet_total <- length(excel_sheets("Desktop/R_Plots/Input_Data.xlsx")) # 循环创建对应命名的数据框 for(i in 1:sheet_total) { # 构建目标变量名:df1、df2... target_var <- paste0("df", i) # 将读取的工作表数据赋值到全局环境的对应变量 assign(target_var, read_excel("Desktop/R_Plots/Input_Data.xlsx", sheet = i)) }
额外优化建议
- 如果你希望按工作表名称命名数据框(比如工作表名为"Q1_Sales"就生成
df_Q1_Sales),可以修改循环内的变量名逻辑:sheet_names <- excel_sheets("Desktop/R_Plots/Input_Data.xlsx") for(i in seq_along(sheet_names)) { target_var <- paste0("df_", sheet_names[i]) assign(target_var, read_excel("Desktop/R_Plots/Input_Data.xlsx", sheet = sheet_names[i])) } - 用
excel_sheets()自动获取工作表信息,比硬编码数字(比如1:39)更灵活,工作表数量变化时无需修改代码。
内容的提问来源于stack exchange,提问作者pranav patel
相关产品推荐
相关产品推荐

