R错误地以日期作为第一个字段导入.csv数据

问题描述

这绝对是令人抓狂的!我正在尝试导入一个基本的、简单的文件,该文件的第一个字段是日期。如果我按原样导入文件,它会将日期呈现为行名称。但是,如果我进入 .csv 文件并在任何字段中手动更改任何内容,则导入很好。就好像 CSV 文件在某处隐藏了一些废话。

Here is a link to the files- 其中的任何 CSV 文件都在做同样的事情。这是来自 SWAT 天气数据网络 here。我从他们那里请求的任何数据都可以做到这一点。

这里发生了什么?我一生中导入了数以千计的 CSV 文件,但从未遇到过这种情况。这是一个非常基本、简单的文件

解决方法

我可以复制这个问题。它可能与每行末尾的尾随 , 有关,因此列名数小于要导入的列数。这将触发使用第一列作为行标签。跳过第一行并提供您自己的列名似乎可以工作:

coln <- c("Date","Longitude","Latitude","Elevation","Max Temperature","Min Temperature","Precipitation","Wind","Relative Humidity","Solar","X")
weather <- read.csv("weatherdata-401-1053.csv",header=FALSE,skip=1,col.names=coln)
str(weather)
# 'data.frame': 4018 obs. of  11 variables:
#  $ Date             : chr  "1/1/2000" "1/2/2000" "1/3/2000" "1/4/2000" ...
#  $ Longitude        : num  -105 -105 -105 -105 -105 ...
#  $ Latitude         : num  40.1 40.1 40.1 40.1 40.1 ...
#  $ Elevation        : int  1890 1890 1890 1890 1890 1890 1890 1890 1890 1890 ...
#  $ Max.Temperature  : num  4.414 1.116 -5.891 2.193 0.503 ...
#  $ Min.Temperature  : num  -4.78 -6.51 -11.51 -10.77 -8.26 ...
#  $ Precipitation    : num  0.378 1.054 1.552 0 0.381 ...
#  $ Wind             : num  3.69 2.48 3.89 5.92 4.02 ...
#  $ Relative.Humidity: num  0.684 0.625 0.498 0.478 0.479 ...
#  $ Solar            : num  9.96 8.7 6.19 10.52 10.2 ...
#  $ X                : logi  NA NA NA NA NA NA ...

然后删除最后的空白列。