我有一个关于以 txt 或 excel 格式保存数据帧的问题。我在 R 中有一个数据框,但是当我保存它时:
- 例如,当我在 Excel 中打开保存的数据框时,首先使用
write.table()
函数,所有列都分组在一列中,您必须在 Excel 中分隔列,否则可能会丢失数据。函数也是如此write.csv()
。
是否可以在 R 中保存所有列分开的数据框。谢谢。
我有一个关于以 txt 或 excel 格式保存数据帧的问题。我在 R 中有一个数据框,但是当我保存它时:
write.table()
函数,所有列都分组在一列中,您必须在 Excel 中分隔列,否则可能会丢失数据。函数也是如此write.csv()
。是否可以在 R 中保存所有列分开的数据框。谢谢。
我最喜欢的实现方式(因为我经常需要与非 R 用户共享在 R 中处理的数据帧,并且他们只需双击并在 Excel 中很好地打开它很方便)是:
write.table(x,"filename.txt",sep="\t",row.names=FALSE)
如上所述,sep="\t"
参数选项卡分隔您的文件,但我认为除非需要,否则删除行名也很有用。
的默认分隔符write.table
是一个空格。虽然.txt
通常用于表示电子表格,但它真正表明它是一个文本文件。如果您想要的是.tsv
. 或带有制表符分隔值的文件,那么您可以尝试write.table(x,sep="\t")
. 这将制表符分隔您的文件,当您尝试打开文件时,excel 应该会选择它。我真的建议?write.table
(并且?read.table
在我们这样做的时候)好好阅读。因为真的,即使你的代码是完美的,如果你不正确地读取或写入数据,那又有什么意义呢?
您保存的文件可能很好,您只是将其错误地加载到 Excel 中(没有示例很难确定)。当您导入 Excel 时,有一些方法可以指定分隔符是什么以及其他选项。您还可以通过在write.table
. 还要检查您的区域设置,默认分隔符可能会有所不同,具体取决于您的计算机是否认为它位于欧洲(或某些国家/地区)或美国(或某些其他国家/地区),可能是您的 R 版本和您的 excel 版本不同意您所在的区域(以及因此使用的分隔符)。
您可能还想查看 XLConnect 包,它将直接创建 excel 文件,而无需通过文本文件。(还有几个其他包也可以写入 excel 文件,但 XLConnect 是我使用过的最好的包)。
将数据框或矩阵快速传输到 Excel 的另一个选项(至少在 Windows 上,不确定这是否适用于其他操作系统)是使用带有file="clipboard"
and的写表sep="\t"
,然后在 Excel 窗口中单击一个单元格,然后执行“粘贴”并且数据将通过剪贴板而不是文件保存在 excel 中。
您应该可以使用write.csv()
.
这是一个适用于我的机器的示例。我创建一个data.frame
,用 保存它write.csv
,然后在 Excel 中打开它,没有问题。
a <- 1:5
b <- 6:10
c <- 11:15
df <- data.frame(a,b,c)
write.csv(df, 'test2.csv')
在下面使用
install.packages(openxlsx)
library(openxlsx)
write.xlsx(dataframe,"C:/Users/santoshr/Desktop/export10.xlsx",sheetName = "Sheet1",col.names = TRUE,showNA=FALSE)