【问题标题】:R reading Excel files with carriage returnsR用回车读取Excel文件
【发布时间】:2012-04-10 09:58:03
【问题描述】:

我在 R 中创建了一个例程来导入多个我需要合并到一个大 txt 文件中的 Excel 文件。我使用 read.xls 函数。其中一些 xls 文件在单元格中有回车符(“\n”)。然后,当我编写 txt 文件(write.table)时,R 将这个“\n”解释为新行。 如何清理 xls 文件或正确读取它们以删除不必要的“\n”?

谢谢!

【问题讨论】:

    标签: excel r carriage-return


    【解决方案1】:

    表中的列几乎肯定是因素(这是 R 中字符列的默认值)。所以,我们可以改变每一列的因素。

    首先是一些虚拟数据

    R> dd = data.frame(d1 = c("1", "2\n", "33"), 
                    d2 = c("1\n", "2\n", "33"))
    
    ##Default, factor
    R> levels(dd[,1])
    [1] "1"   "2\n" "33"
    

    接下来,我们使用for 循环遍历列名:

    for(i in 1:ncol(dd)) 
      levels(dd[,i]) = gsub("\n","", levels(dd[,i]))
    

    如果您想删除for 循环并使用sapply,那么这应该可以工作

    ##Can this be improved?
    sapply(1:ncol(dd), 
            function(i) levels(dd[,i]) <<- gsub("\n","", levels(dd[,i])))
    

    【讨论】:

    • 这行得通,但我不得不说,使用 R 来合并数据表似乎还有很长的路要走。为什么不编写一个小的 Excel 宏或 shell 脚本来打开所有工作簿并将感兴趣的工作表转储到文本文件中?
    猜你喜欢
    • 2017-06-01
    • 2019-01-05
    • 1970-01-01
    • 2011-08-31
    • 2018-01-08
    • 2013-11-12
    • 1970-01-01
    • 2021-05-08
    相关资源
    最近更新 更多