read.table()将所有数据作为一行读取
我试图读取一个包含9列208行的文本文件 要阅读它,我使用:read.table()将所有数据作为一行读取,r,R,我试图读取一个包含9列208行的文本文件 要阅读它,我使用: file=read.table("C:\\Users\\foo.txt",sep="") > str(file) 'data.frame': 1 obs. of 21 variables: ### this not right > class(file) [1] "data.frame" 它似乎错过了一切。最后我得到了这个警告: incomplete final line found by readTableHe
file=read.table("C:\\Users\\foo.txt",sep="")
> str(file)
'data.frame': 1 obs. of 21 variables: ### this not right
> class(file)
[1] "data.frame"
它似乎错过了一切。最后我得到了这个警告:
incomplete final line found by readTableHeader on 'C:\Users\foo.txt'
看起来您没有任何行尾字符。考虑到结构化的性质,您可以尝试
library(magrittr)
DF <- readLines(filename) %>%
gsub("[)] XXXX", ") \nXXXX", .) %>%
textConnection() %>%
read.table(sep = "")
库(magrittr)
DF%
gsub(“[)]XXXX”,”\nxxx“,)%>%
textConnection()%>%
读表(sep=“”)
其中“XXXX”是行的前四个字符。由于文件非常小,我们可以使用
readLines()
读取它,然后使用正则表达式处理它,方法是添加适当的换行符以准备read.table()
。还要注意,我在read.table()
调用中使用了comment.char=“
。这样我们就可以成功地读取那些值可能包含
的行
rl如果不访问实际文件,这可能很难诊断。但这类问题几乎总是归结为文件中发生了一些您不知道的“奇怪”情况。那么,是否可以调整comment.char
参数。。。?但我们仍在猜测,可能还有更多我们不知道的问题。您的文件中似乎没有换行符。。。然而,似乎有一个系统结构。因此,您可以使用快速命令行文本编辑器(如sed或awk)进行预处理,以添加换行符。
rl <- readLines("Downloads/coord.txt")
df <- read.table(
text = gsub("(?<=\\S) (?=SCAN)", "\n", rl, perl = TRUE),
comment.char = ""
)
dim(df)
# [1] 208 9