我正在尝试自动化一些数据导出,并且我想为每个文件添加一个标题,例如“请引用 Bob 和 Jane 2008”......甚至根据上下文添加几行特定说明。
我查看了 write.csv 和 write.table 文档,但没有看到任何此类功能。
实现这一目标的最简单方法是什么?
这里有两种可能的方法 - EDIT 下使用连接的解决方案更加灵活和高效。
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.csv
orwrite.table
或任何功能并使用文件连接(正如@flodel 在评论中指出的那样)只会打开和关闭文件一次,并自动附加。所以效率更高!