2

我正在寻找一种将对象放入 MS Excel 的简单方法。(我使用预装的“嘌呤霉素”数据集作为示例)

我想将这些对象的内容放到一个 excel 文件中:

Puromycin
summary(Puromycin$rate)
summary(Purymycin$conc)
table(Puromycin$state)
lm( conc ~  rate , data=Puromycin)

“内容”是指当我按下回车键时控制台中显示的内容。我不知道该怎么称呼它。

我试图这样做:

sink("datafilewhichexcelhopefullyunderstands.csv")
Puromycin
summary(Puromycin$rate)
summary(Purymycin$conc)
table(Puromycin$state)
lm( conc ~  rate , data=Puromycin)
sink()

这给了 med 一个带有 CSV 扩展名的文件,但是当我在记事本中打开文件时,有逗号分隔。这意味着我无法让 Excel 正确打开它。我的意思是每个数字都在自己的单元格中。

其他人针对类似问题提出了此建议 https://stackoverflow.com/a/13007555/1831980

但是作为一个新手,我觉得解决方案太复杂了,我希望有一个更简单的方法。

我现在正在做的是这样的:

write.table(Puromycin, file="clipboard" , sep=";" , row.names=FALSE ) 
write.table(summary(Purymycin$conc), file="clipboard" , sep=";" , row.names=FALSE )
... etc...

但这需要我大量的复制和粘贴,我希望能消除这些。

任何帮助将不胜感激。

4

3 回答 3

2

write.table及其朋友旨在写出由指定的任何分隔符分隔的数据列。您的剪贴板包含多种数据类型,因为您使用summary的总是提供唯一的输出。

要写出数据值,您可以write.csv在 a 上使用data frame,然后使用 Excel 打开。例如,Puromycin已经是一个数据框(您可以使用 看到str(Puromycin)),因此您可以直接将其写出来:

write.csv(file = "some file.csv", x = Puromycin)

哪个会进入当前工作目录(可以用 确定getwd())。

写出/保存回归模型的结果有点挑战。您绝对可以sink像以前一样使用,但在文件上指定扩展名,.txt以便文本编辑器可以打开它。从长远来看,您可能想要研究一些更高级的方法(sweave, ),因为它们可以自动编写非常好的报告。knitr

与此同时,了解一下str(any R object),因为它将是你的朋友。您可以使用 . 查看工作区中的所有对象ls()

于 2013-01-21T18:03:44.217 回答
1

仅当您准备使用 Excel 的数据/文本到列功能时,这才会有帮助:

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 不会将空格作为单元格分隔符读取,除非您明确告诉它这样做。您可以(而且我经常这样做)使用 Text-to-Columns 对话框界面提供的固定字段输入功能。

于 2013-01-21T19:21:20.060 回答
1

您最简单的选择可能是使用RExcel工具,它在 R 和 Excel 之间传输信息。但是,它不是免费软件。

XLConnect 包是另一种选择,它可用于将信息直接写入 Excel 文件。

棘手的部分是lm调用。 lm不返回简单的向量、矩阵或数据框(所有这些都易于转换为 csv 或直接发送),并且没有明确的方法将列表的各个部分转换为电子表格中的单元格。更好的是使用提取器函数从lmlm 对象的返回或摘要中提取重要部分,然后使用其他工具将它们发送到 Excel。

如果您能告诉我们更多关于为什么您需要 Excel 中的数字以及之后您打算如何处理它们,那么我们也许能够提供更好的帮助(您也许可以完全跳过 Excel)。

如果主要目标是与他人共享输出,那么您应该真正查看 knitr 包(或其他相关包)。这不会创建 Excel 文件,但可用于(连同 pandoc 程序和可能的其他工具)以易于与不熟悉 R 的其他人共享的格式创建报告文件。您可以将所有内容放入 .pdf 文件或一个 .docx 文件(后者由 MS Word 读取,并且有可以使用 Word 编辑的表格)。没有一种简单的方法可以将编辑恢复到 R 中,但是通过跟踪更改,您可以轻松查看已进行了哪些更改并相应地手动编辑您的 R 脚本/模板。

于 2013-01-21T19:23:14.020 回答