【发布时间】:2014-11-19 17:40:05
【问题描述】:
我正在尝试构建一个循环,该循环自动对数据集进行子集化,进行大量计算,并将每个组的结果作为单独的工作表打印到 xlsx-workbook-file。它应该按照以下代码行:
library(xlsx)
clist <- c("group1", "group2", "group3")
for (i in clist) {
datasubset <- filter(data, group == i)
mean <- mean(datasubset)
results <- createWorkbook()
sheet.i <- createSheet(results, sheetName = paste("results", i, sep=" "))
addDataFrame(mean, sheet.i, startRow=1, startColumn=1, row.names = FALSE)
}
最后两行显然不起作用。问题是如何根据 i 的值来命名 sheet.i。例如:sheet.group1、sheet.group2 等。那么应该用什么代码替换“sheet.i”?还是有其他方法可以在不同的包或不同的方法中实现我的目标?
【问题讨论】:
-
您会考虑使用 VBA 构建工作簿的解决方案吗?
-
您应该将
library(.)调用发布到您正在使用的XL-R 连接包。似乎应该有某种 addWorkSheet 功能。您是否查看过您正在使用的软件包的帮助页面? -
@BondedDust 你是对的,对不起,添加了库,我也对其他解决方案持开放态度,dsnt 必须使用 xlsx 包,重要的部分是将结果导出到 excel 中以便我可以发送它们给我的老板,因为循环函数内部正在进行大量计算,你在说什么帮助页面?文档?如果是的话,什么也没找到
-
@vpipkt 我不知道 VBA 是如何工作的,抱歉,谢谢!
-
奇怪,....当我查看从
help(pack=xlsx)帮助页面链接的Worksheet帮助页面时,我看到createSheet描述。