将数据表插入到文本文件中

时间:2013-01-03 14:46:38

标签: r function

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

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 <- function(x, NewFileName) {

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

这是我的工作代码,

xyztoinp&lt; - function(x){
x&lt; - read.table(file =“clipboard”)
a&lt; -x [, - 1]
b&lt; - x [,1]
c&lt; - ifelse(b ==“C”,6,
ifelse(b ==“O”,8,
ifelse(b ==“H”,1,3))) x < - cbind(b,c,a)
zz&lt; - file(“NewFile.inp”,“w”)
猫(“文字”, “文字”,
“文本”,
“”
“文本”,
“文本”,
“text”,file = zz,sep =“\ n”)
write.table(x,file = zz,quote = FALSE,
sep =“\ t”,row.names = FALSE,col.names = FALSE)
猫( “文本”,文件= ZZ)
接近(ZZ)
    }

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

1 个答案:

答案 0 :(得分:1)

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

要使用格式良好的表(以及其他内容)创建自动化报表,最好的方法是创建模板并对其进行处理以创建报表。看看knitr包中有关这方面的详细信息(你也可以使用odfweave包或sweave功能或其他功能,但knitr可能是最常用的)。

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

切换到迎宾器或编织器也可以处理你的第二个问题,但如果没有,那么我们将需要看看你尝试了什么以及发生了什么,知道它为什么不起作用以及如何提供帮助。