首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将数据帧写入带有标题的.xls文件

将数据帧写入带有标题的.xls文件
EN

Stack Overflow用户
提问于 2014-12-23 20:50:13
回答 2查看 2.1K关注 0票数 2

我调整了一个script,以便在多个变量上运行来自dunn.test包的多个(自定义后)比较dunn.test函数,这将生成多个数据帧,并将其与.xls文件中的以下(简化)代码保存为单独的表。我想要的是用每个日期框架保存分析过的变量(列)的名称,作为表标题(而不是列标题)。我找了几个小时的解决方案,但没有成功。怎么做?它们太多了,我不想手动输入它们。

代码语言:javascript
复制
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="")
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-12-23 23:50:42

您可以将源data.frame转换为文本矩阵,在任何标题前加上前缀,并将其写入文件。

例如,考虑到这个data.frame:

代码语言:javascript
复制
dat <- data.frame(Fruit=c('Apple', 'Banana'), 
                  Quantity=1:2, 
                  Notes=c('Hello', 'Some Text'))

您可以使用这样的函数:

代码语言:javascript
复制
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转换包之一)。

代码语言:javascript
复制
temp <- text_matrix(dat, table_title='Here is a table title')
write.table(temp, 'temp.csv', row.names=F, col.names=F, sep=',')

在Excel中打开的结果是:

票数 2
EN

Stack Overflow用户

发布于 2014-12-23 21:02:33

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

代码语言:javascript
复制
n = 20
set.seed(12345)
data = data.frame(cbind(pond=1:2, habitat=1:3, value = rnorm(n)))

write.csv(data, file="output.csv")
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27627798

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档