读取csv文件:有些值包含“ E”,R将其读取为数字

时间:2019-06-13 15:32:24

标签: r csv read.csv

这可能是一个非常基本的问题,因此我事先表示歉意。我正在尝试读取包含几列股票信息的csv文件。这些列之一包含一个标识符(唯一代码,名为“ CUSIP”),该标识符由数字和字母组成(例如L8681T102)。其中一些代码还包含字母“ E”(例如75062E10),当我读取csv文件时,此代码显示为“ 7.51E + 110”,而不是原始代码。

我尝试使用ColClasses来指定该列为字符,但它不起作用。

2 个答案:

答案 0 :(得分:2)

使用read.tablecolClasses可以正常工作,无需开始使用其他软件包:

> read.table(text = "x,y,z\n1,2,75062E10",sep = ",",header = TRUE)
  x y          z
1 1 2 7.5062e+14

> read.table(text = "x,y,z\n1,2,75062E10",sep = ",",header = TRUE,colClasses = c(NA,NA,"character"))
  x y        z
1 1 2 75062E10

答案 1 :(得分:0)

您可以改用read_csv尝试获取标题,并通过以下方式指定每一列。我发现小标题更易于管理和处理,它的创建比数据帧需要更多的时间,但是通常我从不创建小标题,总是将它们读为csv。

library(tidyverse)
read_csv("filename", col_types = cols(
  name= col_character(),
  numberwith.00= col_double(),
  time= col_datetime(format = "")
  ))