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

时间:2015-10-20 16:52:46

标签: 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 readTableHeader on 'C:\Users\foo.txt'

2 个答案:

答案 0 :(得分:1)

看起来你没有任何行尾字符。鉴于结构化性质,您可以尝试

library(magrittr)
DF <- readLines(filename) %>%
  gsub("[)] XXXX", ") \nXXXX", .) %>%
  textConnection() %>%
  read.table(sep = "")

其中“XXXX”是该行的前四个字符。

答案 1 :(得分:1)

由于文件非常小,我们可以使用readLines()读取它,然后使用正则表达式处理它,方法是添加适当的换行符以使其为read.table()做好准备。另请注意,我在comment.char = ""电话中使用了read.table()。这样我们就可以成功读取值可能包含#的那些行。

rl <- readLines("Downloads/coord.txt")
df <- read.table(
    text = gsub("(?<=\\S) (?=SCAN)", "\n", rl, perl = TRUE), 
    comment.char = ""
)
dim(df)
# [1] 208   9

OP的请求未显示数据。