使用R获取文本的行分隔符

时间:2015-02-20 11:44:15

标签: r

我有一些txt和csv文件。 我必须阅读那种行分隔符。如果它是\n\r\n,我需要知道 有没有让我这样做的功能? 我尝试使用scan函数没有结果。

2 个答案:

答案 0 :(得分:1)

您可以通过file使用system

例如:

system('file myfile.txt')

这将返回一个字符串,如:

myfile.txt: ASCII text, with CRLF line terminators

您可以自动迭代文件,并使用以下结果从结果中提取相关文本:

gsub('.*with | line terminators', '', 
     sapply(ff, function(f) system(paste('file', f), intern=TRUE)))

其中ff是文件名的向量。

例如:

write.table(matrix(1:9, 3), f1 <- tempfile(fileext='.txt'))
write.table(matrix(1:9, 3), f2 <- tempfile(fileext='.txt'))
write.table(matrix(1:9, 3), f3 <- tempfile(fileext='.txt'))
ff <- c(f1, f2, f3)

gsub('.*with | line terminators', '', 
     sapply(ff, function(f) system(paste('file', f), intern=TRUE)))

##  C:\\Users\\John\\AppData\\Local\\Temp\\RtmpUpmgXM\\file2ba07a471a01.txt 
                                                                 "CRLF" 
##  C:\\Users\\John\\AppData\\Local\\Temp\\RtmpUpmgXM\\file2ba01ce5433.txt 
                                                                 "CRLF" 
##  C:\\Users\\John\\AppData\\Local\\Temp\\RtmpUpmgXM\\file2ba0427a4b5e.txt 
                                                                 "CRLF" 

答案 1 :(得分:0)

你有多少个文件?也许不是找出分隔符,而是读入文件并将它们写回具有指定分隔符的文件中。 有点复杂的方式,但我可以想象,比告诉你的朋友总是每个文件的分隔符更容易。