R 如何在以列分隔的txt或excel文件中保存数据框

R 如何在以列分隔的txt或excel文件中保存数据框,r,R,我有一个关于以txt或excel格式保存数据帧的问题。我在R中有一个数据帧,但当我保存它时: 首先使用write.table()函数当我打开保存的数据框(例如在Excel中)时,所有列都分组在一列中,您必须在Excel中分离这些列,否则可能会丢失数据。write.csv()函数也会发生同样的情况 是否可以将所有列分开保存在数据框中。谢谢。您应该能够使用write.csv()完成此操作 这是一个在我的机器上运行的示例。我创建了一个data.frame,用write.csv保存它,并在Excel中打

我有一个关于以txt或excel格式保存数据帧的问题。我在R中有一个数据帧,但当我保存它时:

  • 首先使用
    write.table()
    函数当我打开保存的数据框(例如在Excel中)时,所有列都分组在一列中,您必须在Excel中分离这些列,否则可能会丢失数据。
    write.csv()
    函数也会发生同样的情况

  • 是否可以将所有列分开保存在数据框中。谢谢。

    您应该能够使用
    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')
    

    a您保存的文件可能没有问题,您只是错误地将其加载到Excel中(没有示例很难确定)。导入Excel时,可以通过多种方式指定分隔符以及其他选项。您还可以通过在
    write.table
    中设置一些选项来简化流程。另外,请检查您的区域设置,默认分隔符可能会有所不同,具体取决于您的计算机认为它位于欧洲(或某些国家)或美国(或某些其他国家),可能是您的R版本和excel版本不同意您位于哪个区域(因此使用哪个分隔符)

    您可能还想看看XLConnect软件包,它将直接创建excel文件,而无需查看文本文件。(还有几个其他软件包也会写入excel文件,但XLConnect是我最熟悉的软件包)


    将数据框或矩阵快速传输到excel的另一个选项(至少在windows上,不确定这是否适用于其他操作系统)是使用write table with
    file=“clipboard”
    sep=“\t”
    ,然后在excel窗口中单击一个单元格,然后执行“粘贴”数据将通过剪贴板而不是文件保存在excel中。

    写入的默认分隔符。表
    是一个空格。虽然
    .txt
    通常用于表示电子表格,但它真正表明的是它是一个文本文件。如果您想要的是一个
    .tsv
    ,或者一个带有制表符分隔值的文件,那么您可以尝试
    写入.table(x,sep=“\t”)
    。这将对您的文件进行分隔,当您尝试打开文件时,excel应该会注意到这一点。我真的建议大家好好阅读一下givning
    ?write.table
    (和
    ?read.table
    )。因为事实上,即使你的代码是完美的,如果你不正确地读写数据,那又有什么意义呢?

    我最喜欢的方法是实现这一点(因为我经常需要与非R用户共享在R中处理的数据框,他们只需双击并在Excel中很好地打开数据框就很方便了):

    如上所述,
    sep=“\t”
    argument选项卡为您的文件定界,但我认为删除行名也很有用,除非需要

    在下面使用

    install.packages(openxlsx)
    library(openxlsx)
    
    
    write.xlsx(dataframe,"C:/Users/santoshr/Desktop/export10.xlsx",sheetName = "Sheet1",col.names = TRUE,showNA=FALSE)
    

    请显示要写入的示例数据,并使用记事本打开写入的文件并进行检查。它是用逗号分隔的吗?账单?分号?你试过写.csv2吗?谢谢@Roland,这就是我要找的!
    install.packages(openxlsx)
    library(openxlsx)
    
    
    write.xlsx(dataframe,"C:/Users/santoshr/Desktop/export10.xlsx",sheetName = "Sheet1",col.names = TRUE,showNA=FALSE)