如何写多个表,数据框,回归结果等 – 一个Excel文件?
我正在寻找一种简单的方法来获取对象到MS Excel中。 (我正在使用预装“嘌呤霉素”数据库的例子)
我想把这些对象的内容放在一个excel文件中:
Puromycin summary(Puromycin$rate) summary(Purymycin$conc) table(Puromycin$state) lm( conc ~ rate , data=Puromycin)
“内容”我的意思是什么在控制台显示,当我按下input。 我不知道该怎么称呼它。
我试图做到这一点:
sink("datafilewhichexcelhopefullyunderstands.csv") Puromycin summary(Puromycin$rate) summary(Purymycin$conc) table(Puromycin$state) lm( conc ~ rate , data=Puromycin) sink()
这给了一个CSV扩展名的文件,但是当我在记事本中打开文件,有逗号分隔。 这意味着我不能让Excel正确打开它。 正确地说,我的意思是每个数字都在它自己的单元格中。
其他人也提出了类似的问题https://stackoverflow.com/a/13007555/1831980
但作为一个新手,我觉得解决scheme太复杂,我希望有一个更简单的方法。
我现在正在做的是这样的:
write.table(Puromycin, file="clipboard" , sep=";" , row.names=FALSE ) write.table(summary(Purymycin$conc), file="clipboard" , sep=";" , row.names=FALSE ) ... etc...
但是这需要大量的复制和粘贴,我希望消除这些复制和粘贴。
任何帮助将不胜感激。
write.table
及其朋友打算写出由指定分隔符分隔的数据列。 您的剪贴板包含多种数据types,因为您使用的summary
总是提供唯一的输出。
为了写出数据值,可以在data frame
上使用write.csv
,然后用Excel打开。 例如, Puromycin
已经是一个数据框(你可以看到str(Puromycin)
),所以你可以直接写出来:
write.csv(file = "some file.csv", x = Puromycin)
这将进入当前的工作目录(这可以通过getwd()
来确定)。
写出/保存回归模型的结果是一个更多的挑战。 你可以像使用sink
一样使用sink
,但是在你的文件上指定.txt
的扩展名,这样文本编辑器就可以打开它。 有更sweave
方法( sweave
, knitr
),你可以从长远来看,因为他们可以自动写出非常好的报告。
同时,结识str(any R object)
因为它将会是你的朋友。 您可以使用ls()
来查看工作空间中的所有对象。
这只有在您准备使用Excel的“数据/文本到列”function时才有用:
capture.output( sapply( c(Puromycin, summary(Puromycin$rate), summary(Puromycin$conc), table(Puromycin$state), lm( conc ~ rate , data=Puromycin) ), FUN=print), file="datafilewhichexcelhopefullyunderstands.csv", append=TRUE)
问题是,Excel不会读取空格作为单元格分隔符,除非您明确告诉它。 您可以(而且我经常这样做)使用“文本到列”对话框界面提供的固定字段inputfunction。
最简单的select可能是使用RExcel工具,它在R和Excel之间传输信息。 但它不是免费的软件。
XLConnect包是另一种select,它可以用来直接将信息写入Excel文件。
棘手的部分是lm
电话。 lm
不会返回一个简单的向量,matrix或数据框(所有这些都很容易转换为csv或直接发送),并且没有一个清晰的方法将列表的各个部分转换为电子表格中的单元格。 更好的办法是使用提取函数从lm
的返回或lm对象的汇总中提取重要的部分,并使用其他工具将它们发送到Excel。
如果你可以告诉我们更多关于为什么你需要Excel中的数字以及你打算如何处理这些数字,那么我们可能会提供更好的帮助(你可能会完全跳过Excel)。
如果主要目标是与他人分享输出,那么你应该看看knitr软件包(或其他相关软件包)。 这不会创buildExcel文件,但可以使用(与pandoc程序以及可能的其他工具一起)以易于与不熟悉R的人共享的格式创build报告文件。您可以将所有内容都放入.pdf文件或一个.docx文件(后者通过MS Word读取,并且可以使用Word编辑表格)。 没有简单的方法让编辑回到R,但通过更改轨迹,您可以轻松地看到已经做了哪些更改,并相应地编辑您的R脚本/模板。