【问题标题】:R importing .csv data with date as first field erroneouslyR错误地将日期作为第一个字段的.csv数据导入
【发布时间】:2021-04-07 21:58:22
【问题描述】:

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

Here is a link to the files- 内的任何 CSV 文件都在做同样的事情。这是来自 SWAT 天气数据网络here。我向他们请求的任何数据都是这样做的。

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

【问题讨论】:

  • 如果需要帮助,请确保包含reproducible example。此外,如果您不提供您正在使用的任何代码,任何人都无法帮助您。将 .csv 读入 R 有上千种不同的方法。
  • Ben- 如果我编写一些基本的东西,我无法重现它。我刚刚在我编辑的请求中链接到的文件都可以做到这一点。只需尝试以最基本的 read.csv 或 read.delim 方式导入它,然后查看数据框。

标签: r date import read.csv


【解决方案1】:

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

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 ...

那么就删掉最后的空白列吧。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-05-29
    • 1970-01-01
    • 2016-05-23
    • 2017-03-18
    • 2017-02-05
    • 2020-10-18
    相关资源
    最近更新 更多