2

我改编了一个脚本,以在多个变量上运行包中的多个(事后)比较dunn.test函数dunn.test,这会生成多个数据帧,并与 .xls 文件中的波纹管(简化)代码一起保存为单独的表。我想要的是与每个日期框架一起保存被分析的变量(列)的名称,作为表标题(而不是列标题)。我正在寻找几个小时的解决方案,但没有成功。这个怎么做?它们太多了,我不想手动输入它们。

wb <- createWorkbook()
sheet <- createSheet(wb, sheetName="Sheet1")
# start analyzing data in a for loop here
# and add created data frames to a sheet
    addDataFrame(mydataframe, sheet)
# end loop here
saveWorkbook(wb, "myfile.xls", sep="")
4

2 回答 2

2

您可以将源 data.frame 转换为文本矩阵,为您想要的任何标题添加前缀,然后将其写入文件。

例如,给定这个 data.frame:

dat <- data.frame(Fruit=c('Apple', 'Banana'), 
                  Quantity=1:2, 
                  Notes=c('Hello', 'Some Text'))

你可以使用这样的函数:

text_matrix <- function(dat, table_title) {

  rbind(c(table_title, rep('', ncol(dat)-1)), # title
        rep('', ncol(dat)), # blank spacer row
        names(dat), # column names
        unname(sapply(dat, as.character))) # data

}

然后您可以调用该函数并将输出写入文件(如果必须,使用 write.table 或 xls 转换包之一)。

temp <- text_matrix(dat, table_title='Here is a table title')
write.table(temp, 'temp.csv', row.names=F, col.names=F, sep=',')

在 Excel 中打开的结果是这样的:

在此处输入图像描述

于 2014-12-23T23:50:42.290 回答
0

希望以下有所帮助。我快速创建了一个示例数据集。Output.csv 可以在您的主目录中找到。在 Excel 中打开它会显示列标题。

n = 20
set.seed(12345)
data = data.frame(cbind(pond=1:2, habitat=1:3, value = rnorm(n)))

write.csv(data, file="output.csv")
于 2014-12-23T21:02:33.980 回答