Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/82.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
read.table()将所有数据作为一行读取_R - Fatal编程技术网

read.table()将所有数据作为一行读取

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

我试图读取一个包含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 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