我想将一个txt文件读入R
此文件只有文件行,如此
1 NYC 2013-12-30 82 PM2.5 Ⅱ fair 2 London 2013-12-30 66 PM10.0 Ⅱ good
此文件中没有\ n,所有我想要的是包含这些信息的data.table
像这样: 1 NYC 2013-12-30 82 PM2.5 Ⅱ fair
2 London 2013-12-30 66 PM10.0 Ⅱ good
幸运的是,文件中没有NA,我也知道每个观察结果都有7个字段。我可以用fread来实现吗?
或read.table?
我试过这个
test <- read.table("1.txt) # the file name..
test <- matrix(test, ncol = 7)
和scan
,as.array
。都失败了。
你能提出一些建议吗?
非常感谢!
答案 0 :(得分:3)
最简单的方法可能是直接使用scan
。您也可以使用read.fwf
,但我认为这更复杂。
> data.frame(matrix(scan('2.txt', what='character'), nrow=2, byrow=TRUE))
Read 14 items
X1 X2 X3 X4 X5 X6 X7
1 1 NYC 2013-12-30 82 PM2.5 || fair
2 2 London 2013-12-30 66 PM10.0 || good
答案 1 :(得分:2)
在linux和data.table
1.8.11我会这样做:
fread("sed -r 's/(([^ ]+ +){7})/\\1\\n/g' yourfile | sed 's/ $//'")
答案 2 :(得分:1)
以下是使用scan
的第二种方式:
t(do.call(rbind, scan(text=t, what=replicate(7, character()))))
# [,1] [,2] [,3] [,4] [,5] [,6] [,7]
# [1,] "1" "NYC" "2013-12-30" "82" "PM2.5" "?" "fair"
# [2,] "2" "London" "2013-12-30" "66" "PM10.0" "?" "good"