【发布时间】:2014-11-06 09:35:57
【问题描述】:
我在导入由空格/多个空格分隔的文本文件时遇到了一些问题,该文件还包含带有不应被解释为分隔符的空格的字符串的列!
该表没有列名,最多有 9 列。第 6 列由一个带有空格的字符串组成。第 4、7、8、9 列是可选的,部分缺失。
我的想法是在阅读表格时使用固定的列宽,但在技术上无法实现这一点..
这里是文件地址:ftp://ftp.ncdc.noaa.gov/pub/data/ghcn/daily/ghcnd-stations.txt
因为read.table会抛出错误,
> read.table("ftp://ftp.ncdc.noaa.gov/pub/data/ghcn/daily/ghcnd-stations.txt",sep="")
Fehler in scan(file, what, nmax, sep, dec, quote, skip, nlines, na.strings, :
Zeile 1 hatte keine 9 Elemente
我这样做了
lines <- readLines("ftp://ftp.ncdc.noaa.gov/pub/data/ghcn/daily/ghcnd-stations.txt")
这是lines 的示例:
a <- c("USC00080211 29.7258 -85.0206 6.1 FL APALACHICOLA AIRPORT HCN 72220",
"USC00080228 27.2181 -81.8739 9.1 FL ARCADIA HCN ",
"USC00080236 27.1819 -81.3508 42.7 FL ARCHBOLD BIO STN ",
"USC00080369 27.5947 -81.5267 46.9 FL AVON PARK 2 W ",
"USC00080374 27.6000 -81.5000 46.0 FL AVON PARK 1 NW ",
"USC00080390 27.8500 -81.5167 38.1 FL BABSON PARK 1 ENE ",
"USC00080414 24.6589 -81.2761 0.9 FL BAHIA HONDA SP ",
"USC00080478 27.8986 -81.8433 38.1 FL BARTOW HCN ",
"ACW00011604 17.1167 -61.7833 10.1 ST JOHNS COOLIDGE FLD ",
"ACW00011647 17.1333 -61.7833 19.2 ST JOHNS ",
"AE000041196 25.3330 55.5170 34.0 SHARJAH INTER. AIRP GSN 41196"
)
tf <- tempfile(fileext=".txt")
writeLines(a,tf)
shell.exec(tf)
#read.table(tf, sep = "", ??)
【问题讨论】:
-
我认为诀窍是将其视为固定宽度文件。以下问题和答案应该对您有所帮助:stackoverflow.com/questions/18720036/…
-
谢谢,这为我指明了正确的方向!!
标签: r fixed-width read.table