【问题标题】:Reading in CSV into R but yield 0 observations将 CSV 读入 R 但产生 0 个观察值
【发布时间】:2020-01-20 21:21:07
【问题描述】:

我的数据看起来像这样,下面是记事本的屏幕截图。

但是,当我运行以下代码将其读入 R 时,我得到了这个。

pdata = read_csv('kd30.csv') 

我认为它与“in the 12”土壤湿度有关,因为当我手动将名称更改为仅 soil12 时,它会读入。但我需要它来处理给定的列名,因为我有很多像这样需要读入的数据。

这里是纯文本格式数据的示例

,12" Soil Moisture (%VWC),16" Soil Moisture (%VWC),20" Soil Moisture (%VWC),Pressure Switch (on|off)
04/25/19 00:15:00,,,,0
04/25/19 00:15:06,36.4465,35.6766,36.3512,
04/25/19 00:30:00,,,,0
04/25/19 00:30:06,36.4522,35.6886,36.3581,
04/25/19 00:45:00,,,,0
04/25/19 00:45:06,36.435,35.6886,36.3581,
04/25/19 01:00:00,,,,0
04/25/19 01:00:06,36.4522,35.6826,36.3581,
04/25/19 01:15:00,,,,0
04/25/19 01:15:06,36.4177,35.6706,36.3649,
04/25/19 01:30:00,,,,0
04/25/19 01:30:05,36.4005,35.6826,36.3649,
04/25/19 01:45:00,,,,0
04/25/19 01:45:06,36.3948,35.6886,36.3717,
04/25/19 02:00:00,,,,0
04/25/19 02:00:06,36.3775,35.6947,36.3717,

【问题讨论】:

  • 是的,这个问题可能是由于“可能意味着英寸,但被解释为引号。但请以纯文本格式提供数据,而不是图像,以便用户可以复制/粘贴它。一个简单的修复可能是取消选中“第一行作为名称”并稍后添加标题。
  • 你用了什么命令? read.table()、read.csv()、fread() ?您是否尝试指定分隔符?喜欢:read.table(file=..., sep=",")
  • 我使用了 read_csv
  • 请以您在问题中使用的可重现方式提供完整的代码。不要在评论中发布。

标签: r csv file-read


【解决方案1】:

您可以跳过第一行并将带有col_names 参数的列名提供给read_csv

read_csv('kd30.csv', col_names = c("soil_moisture_12_inch", "soil_moisture_16_inch", "soil_moisture_20_inch", "pressure_switch"), skip = 1)

【讨论】:

    【解决方案2】:

    根据RFC4108,这是一个无效的csv文件。

    如果字段没有用双引号括起来,则双引号可能不会出现在字段内。

    我建议你要么修复文件,要么在阅读时跳过文件的第一行。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-07-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-12-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多