问题描述
这绝对是令人抓狂的!我正在尝试导入一个基本的、简单的文件,该文件的第一个字段是日期。如果我按原样导入文件,它会将日期呈现为行名称。但是,如果我进入 .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 ...
然后删除最后的空白列。