【问题标题】:Inserting a table of data into a text file将数据表插入文本文件
【发布时间】:2012-12-17 22:42:10
【问题描述】:

我编写了一个函数,允许我从剪贴板中取出四列数据,拆分它,添加一个额外的列,重新组合它,然后将其导出为文本文件。

xyztoinp <- function(x) {
    x <- read.table(file="clipboard") 
    a <- x[,-1] 
    b <- x[,1]
    c <- ifelse(b == "C", 6,
    ifelse (b == "O", 8,ifelse (b == "H", 1, 3)))
    x <- cbind(b,c,a)
    write.table(x, file="IRCoutput", quote = FALSE,
    sep = "\t", row.names = FALSE, col.names = FALSE)
}

我有两个问题:-

是否可以创建一个文件,其中包含我使用此函数创建的表格,以便将表格粘贴到某些文本的中间?

例如

text_text_text_text_text_text_text_
text_text_text_text_text_text_text_

Neatly formated table

text_text_text_text_text_text_text_
text_text_text_text_text_text_text_

其次,我尝试修改函数,使其将文件名作为变量;即xyztoinp &lt;- function(x, NewFileName) {

等等... 但这并没有产生带有新文件名的输出;有人知道这是怎么做到的吗?

这是我的工作代码,

xyztoinp x 一个 b c ifelse (b == "O", 8,
ifelse (b == "H", 1, 3)))
x zz 猫(“文本”, "文字",
“文字”,
"",
“文字”,
“文字”,
"文本", 文件 = zz, sep = "\n")
write.table(x, 文件=zz, 引用 = FALSE,
sep = "\t", row.names = FALSE, col.names = FALSE)
猫(“文本”,文件=zz)
关闭(zz)
}

谢谢大家,尤其是@Greg。 ps 无法更改函数中的文件名,但我对上述内容感到满意。

【问题讨论】:

  • a) 欢迎来到 SO。 b) 请学习格式化您的问题。 c) 请参阅 R 安装随附的 R 输入/输出手册。

标签: r function


【解决方案1】:

人们希望将表格(或图表、输出或...)插入文本的一般原因是创建某种自动报告(如果不是您的情况,请提供更多详细信息,以便我们回答实际问题)。

要使用格式良好的表格(和其他内容)创建自动报告,最好的方法是创建一个模板并对其进行处理以创建报告。查看 knitr 包以了解有关执行此操作的详细信息(您也可以使用 odfweave 包或 sweave 函数或其他功能,但 knitr 可能是最通用的)。

如果您不想预先创建报告模板,另一种选择是 pander 包。

切换到 pander 或 knitr 也可能会解决您的第二个问题,但如果没有,那么我们将需要看看您尝试了什么以及发生了什么,以了解它为什么不起作用以及如何提供帮助。

【讨论】:

  • "人们想要的一般原因..."我想为另一个程序创建一个输入文件。输入文件包含一些序言,然后是脚本,然后是坐标表,然后是更多脚本。我目前正在尝试使用 sink() 来解决我的问题(在阅读了@Dirk 的说明之后)。
  • 如果你想走模板路线,那么 ascii 包可能会有所帮助。如果您想即时创建它,请不要使用接收器,而是打开文件连接,然后使用“cat”和文件参数作为连接来编写序言之类的内容,然后使用write.table 连接坐标,然后再次cat。使用开放连接(请参阅?file)将允许不同的函数写入同一个文件而不会覆盖。
  • 谢谢。我使用了 ?file 中的第一个示例并将其应用于我的函数。现在,它就像一个魅力。
  • 感谢推广pander!仅作记录:如果处理“报告模板”,我们的另一个 R 包,命名为 rapport,可能是更好的选择。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-01-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-11-28
相关资源
最近更新 更多