gpt4 book ai didi

r - 如何用EOF解决fread txt的问题?

转载 作者:行者123 更新时间:2023-12-03 17:37:11 40 4
gpt4 key购买 nike

我正在尝试从 ftp://ftp.ncdc.noaa.gov/pub/data/ghcn/daily/ghcnd-stations.txt 读取气候站信息.
但是,由于第一行未完全填充(缺少最后两个列)并且第 5 列包含空格,因此我无法完成阅读:

fread('ftp://ftp.ncdc.noaa.gov/pub/data/ghcn/daily/ghcnd-stations.txt',sep=)

它返回错误消息:
 Expected sep (' ') but new line, EOF (or other non printing character) ends 
field 5 when detecting types from point 0: AGE00135039 35.7297 0.6500
50.0 ORAN-HOPITAL MILITAIRE

如何在阅读此 txt 文件时正确应用 fread?谢谢!

最佳答案

为什么不试试 read.fwf utils 包中的函数? readme.txt 文件中给出了列宽(参见第 IV 节)。

IV. FORMAT OF "ghcnd-stations.txt"

------------------------------
Variable Columns Type
------------------------------
ID 1-11 Character
LATITUDE 13-20 Real
LONGITUDE 22-30 Real
ELEVATION 32-37 Real
STATE 39-40 Character
NAME 42-71 Character
GSN FLAG 73-75 Character
HCN/CRN FLAG 77-79 Character
WMO ID 81-85 Character
------------------------------

但是,以下尝试返回错误:
data <- read.fwf("ghcnd-stations.txt", widths = c(11,9,10,7,3,31,4,4,6))
Error in scan(file = file, what = what, sep = sep, quote = quote, dec = dec, :
line 25383 did not have 7 elements

检查第 25,383 行揭示了错误的原因。
> x <- readLines("ghcnd-stations.txt", 25383)
> tail(x, 1)
[1] "CA002100627 60.8167 -137.7333 846.0 YT HAINES APPS #4 "

因此,通过包含 comment.char 来规避这一点。参数,将值从默认值 (#) 更改为其他值,可能只是 null。
data <- read.fwf("ghcnd-stations.txt", widths = c(11,9,10,7,3,31,4,4,6), comment.char="")

它只需要大约 20 秒。不需要 fread .

关于r - 如何用EOF解决fread txt的问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46162889/

40 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com