我有for循环列出多个excel工作表,读取它们,进行一些处理的过程,理想情况下,我希望将结果输出存储到同一excel文件/工作表中。
所需的输出是qs
块引用
files <- list.files(path = "V:/_190718AA_ascii", pattern =
"*.xlsx", full.names = T)
df.list <- lapply(files, read_excel,col_names=FALSE) kClusters=5 for (m in df.list) {
qs[m]<- quantile(m[px[,,1,1]],probs=c(0,0.025,0.05,0.1,0.25,0.5,0.75,0.9,0.95,0.975,1))
write.xlsx(qs[m],"V:/_ORG/080-DOZP/BO-P2/DOZPLL/Esma/uqs.xlsx",sheet=m) m <- m+1
}
它仅从1 m而不是4给出重用。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
根据您的需求,您希望在R语言环境中使用for循环遍历多个Excel工作表,对每个工作表进行处理后,将结果输出到同一个Excel文件的不同工作表中。但目前遇到的问题是,写入操作似乎只从某个特定的索引m(例如m=1)开始,而非预期的从所有处理过的m值进行。这里没有直接引用给定的知识库内容,因为它们主要涉及SQL、PL/SQL以及DataWorks和Tablestore的用法,与您的R语言环境和Excel操作不直接相关。不过,我可以提供一个基于您描述问题的解决方案思路。
确保您的循环逻辑正确地迭代了所有需要处理的工作表,并且每次迭代时都能正确地指定目标工作表名称。以下是一个简化的示例代码框架,展示如何实现这一过程:
# 假设df.list是一个包含所有数据框的列表,每个元素对应一个Excel工作表的内容
df.list <- list() # 此处应填充实际读取的Excel工作表数据
# 初始化一个空列表用于存储处理后的数据框
qs <- list()
# 假设您有m个工作表需要处理
for (m in 1:length(df.list)) {
# 对每个数据框df.list[[m]]进行所需处理,然后将其存入qs
qs[[m]] <- processDataFrame(df.list[[m]]) # 这里processDataFrame是您自定义的数据处理函数
# 将处理后的数据框写入到Excel文件的第m个工作表中
write.xlsx(qs[[m]], "V:/_ORG/080-DOZP/BO-P2/DOZPLL/Esma/uqs.xlsx", sheetName = m)
}
# 注意:上述代码片段中的"processDataFrame"函数需替换为您的实际数据处理逻辑。
m
能够遍历所有工作表的索引。在这个例子中,我们通过1:length(df.list)
来实现。df.list[[m]]
)应用相应的数据处理逻辑,然后将处理结果保存到列表qs
中。write.xlsx
函数,每次循环都把当前处理好的数据框写入到指定的Excel文件的不同工作表中,通过sheetName = m
参数动态指定工作表名。如果您的代码仅从索引1开始写入而不是覆盖所有处理过的工作表,可能是因为循环控制或工作表命名/索引上的逻辑错误。请检查循环范围是否正确包含了所有工作表,以及在调用write.xlsx
时是否正确地指定了每个工作表的名称或索引。