将标题添加到“write.csv”创建的文件

时间:2012-09-12 04:13:49

标签: r header

我正在尝试自动化一些数据导出,我想为每个文件添加一个标题,例如“请引用Bob和Jane 2008”......或者甚至根据上下文添加几行特定指令。< / p>

我查看了write.csv和write.table文档,但没有看到任何此类功能。

实现这一目标的最简单方法是什么?

1 个答案:

答案 0 :(得分:16)

以下是两种可能的方法 - 使用连接编辑下的解决方案更灵活,更高效。


使用write.table(...,append = T)cat

  • append=T的通话中使用write.table,前面有cat标题

包裹在自己的功能中....

write.table_with_header <- function(x, file, header, ...){
  cat(header, '\n',  file = file)
  write.table(x, file, append = T, ...)
}

请注意append来电时会忽略write.csv,因此您只需致电

write.table_with_header(x,file,header,sep=',')

这将导致csv文件。


修改

使用连接

(感谢@flodel的建议是这样的)

my.write <- function(x, file, header, f = write.csv, ...){
# create and open the file connection
  datafile <- file(file, open = 'wt')
# close on exit
  on.exit(close(datafile))
# if a header is defined, write it to the file (@CarlWitthoft's suggestion)
  if(!missing(header)) writeLines(header,con=datafile)
# write the file using the defined function and required addition arguments  
  f(x, datafile,...)
}

请注意,此版本允许您使用write.csvwrite.table或任何功能并使用文件连接 (正如@flodel在评论中指出的那样) 只会打开和关闭文件一次,并自动追加。因此效率更高!