使用R读取带有换行符的Excel文件

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

0

你的表格中的列几乎肯定是因子(在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脚本,打开所有工作簿并将感兴趣的工作表转储到文本文件中呢? - Carl Witthoft

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接