【问题标题】:CSV Data frame column show incorrect class nameCSV 数据框列显示不正确的类名
【发布时间】:2021-11-11 03:08:31
【问题描述】:
Date;Hours;Turnover 
01/01/2015;00 - 01;37403.9
01/01/2015;00 - 01;37403.10
01/01/2015;00 - 01;37403.11
01/01/2015;00 - 01;37403.12
01/01/2015;00 - 01;37403.13
01/01/2015;00 - 01;37403.14
01/01/2015;00 - 01;37403.15
01/01/2015;00 - 01;37403.16
01/01/2015;00 - 01;37403.17
01/01/2015;00 - 01;37403.18
01/01/2015;00 - 01;37403.19
01/01/2015;00 - 01;37403.20
01/01/2015;00 - 01;37403.21
01/01/2015;00 - 01;37403.22
01/01/2015;00 - 01;37403.23
01/01/2015;00 - 01;37403.24
01/01/2015;00 - 01;37403.25
01/01/2015;00 - 01;37403.26
01/01/2015;00 - 01;37403.27
01/01/2015;00 - 01;37403.28
01/01/2015;00 - 01;37403.29
01/01/2015;00 - 01;37403.30
01/01/2015;00 - 01;37403.31
01/01/2015;00 - 01;37403.32

我有一个CSV data frame 有三个不同的列,一列由日期(dd\mm\year)组成,第二列由小时(24 小时)组成,第三列由每小时的电力需求值组成。我想提取仅包含数值的第三列。但是当我检查所选列的类时,它告诉我它是factor,所以请帮助我为什么会发生这种情况并提出可能的解决方案,即类是数字而不是一个因素。 我将此 CSV 文件保存为 dem<- read.csv2("~/dem.data2.csv"),然后我将第三列提取为 dem1<- dem$Turnover,但是当我检查 dem1 的类时,它给出了因素。

【问题讨论】:

  • 如果您创建一个小的可重现示例以及预期的输出,这将更容易提供帮助。阅读how to give a reproducible example
  • 谢谢,Ronak Shah 的回复我用一个例子来编辑我的问题。
  • 我认为在您的数据中某处您的值不是数字。您也可以尝试使用dem<- read.csv2("~/dem.data2.csv", stringsAsFactors = FALSE),但这只会将类从因子更改为字符。
  • 我检查了我所有的数据,没有一个不是整数的值。表示所有值都是数字
  • 如果是这种情况,那么只需将它们更改为数字? dem$Turnover <- as.numeric(as.character(dem$Turnover))

标签: r csv


【解决方案1】:

问题在于小数分隔符使您认为您的数字是一个字符串。使用这条线

dem<-  read.csv("~/dem.data2.csv",sep=";",dec=".",stringsAsFactors = FALSE)

【讨论】:

  • 是的,感谢 Miguel Suazo 解决了我的问题
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-08-31
  • 1970-01-01
相关资源
最近更新 更多