R - read.table(),导入期间的子集化和转换数据

时间:2017-06-13 06:05:11

标签: r import subset read.table

我一直在尝试使用read.table读取包含数据的文本文件,但我必须同时解决3个问题。

  1. 我正在阅读的数据混合了不同的列类。
  2. 日期;时间 ; numeric1; numeric2; numeric3等

    当我导入日期和时间作为因素导入时。我试过了

        x <- read.table("file.txt", header = TRUE, sep = ";", nrows = 10, colClasses = c("Date", "Time", "numeric", "numeric", "numeric", "numeric", "numeric", "numeric", "numeric"))
    

    但我收到此错误

        Error in methods::as(data[[i]], colClasses[i]) : no method or default for coercing “character” to “Time”
    

    我不想读取整个文件和子集并更改类。

    1. 此文本文件有大约200万条记录,但我想只阅读2016年和2017年的数据,再次不想要分组。

    2. 我想将时间列转换为时间类

    3. 有没有办法在导入过程中一次完成所有这些...?

1 个答案:

答案 0 :(得分:0)

我使用来自data.table的fread阅读但跳过几行才能获得2017年和2016年的数据。不幸的是,您可能需要以交互方式找到它,特别是如果数据未排序。

来自https://www.rdocumentation.org/packages/data.table/versions/1.10.4/topics/fread

dt = fread(输入, skip =“string”,stringsAsFactors = FALSE)

DT

我指的是日期的快速包

dt [,Datevar:= as.POSIXct(Datevar)]

https://cran.r-project.org/web/packages/fasttime/fasttime.pdf