Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R读取带回车符的Excel文件_Excel_R_Carriage Return - Fatal编程技术网

R读取带回车符的Excel文件

R读取带回车符的Excel文件,excel,r,carriage-return,Excel,R,Carriage Return,我在R中创建了一个例程来导入多个Excel文件,这些文件需要合并到一个大的txt文件中。我使用read.xls函数。某些xls文件在单元格(“\n”)中有回车符。然后,当我写入txt文件(write.table)时,R将此“\n”解释为新行。 如何清理xls文件或正确读取它们以删除不必要的“\n” 谢谢 表中的列几乎肯定是因子(这是R中字符列的默认值)。所以,我们可以改变每列中的因子 首先是一些虚拟数据 R> dd = data.frame(d1 = c("1", "2\n", "33")

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


谢谢

表中的列几乎肯定是因子(这是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])))
##这能改进吗?
sapply(1:ncol(dd),

函数(i)级别(dd[,i])是有效的,但我必须说,使用R合并数据表似乎是一条漫长的路。为什么不编写一个小的Excel宏或shell脚本,打开所有工作簿并将感兴趣的工作表转储到文本文件中呢?