readr::read_csv()不';t读取日期并返回NA

readr::read_csv()不';t读取日期并返回NA,r,csv,datetime,R,Csv,Datetime,我有一个csv文件test.csv,其中有一列包含日期: V1 14-01-02 9:10 14-01-02 9:10 14-01-02 9:21 14-01-02 9:34 14-01-02 9:34 14-01-02 9:34 使用readr::read_csv读取文件会产生NAs: V1 1 <NA> 2 <NA> 3 <NA> 4 <NA> 5 <NA> 6 <NA> Warning message: 9 prob

我有一个csv文件
test.csv
,其中有一列包含日期:

V1
14-01-02 9:10
14-01-02 9:10
14-01-02 9:21
14-01-02 9:34
14-01-02 9:34
14-01-02 9:34
使用
readr::read_csv
读取文件会产生
NAs

V1
1 <NA>
2 <NA>
3 <NA>
4 <NA>
5 <NA>
6 <NA>
Warning message:
9 problems parsing 'test.csv'. See problems(...) for more details. 
V1
1.
2.
3.
4.
5.
6.
警告信息:
解析“test.csv”时出现9个问题。有关更多详细信息,请参阅问题(…)。
read.csv
似乎能够像这样毫无问题地加载它,但速度太慢了。实际的表是322509 x 45,我不想用
col\u type
选项指定每一列类型


无论如何,它可以将列作为字符加载?

读取csv
它说的
列类型
参数

如果为“NULL”,则将从前30个字段开始插补列类型 输入上的行。这很方便(也很快),但不方便 强健的如果插补失败,您需要提供 自己更正类型

听起来你可能被困在

read_csv("temp.csv", col_types="T")  # T for datetimes
您还可以尝试使用
read.csv
读取第一行,获取类,然后使用
read\u csv
读取整个文件。您需要在事件发生后将字符转换为日期时间

samp <- read.csv("test.csv", nrows=1, strings=F)               # read one row
cols <- sapply(samp, class)                                    # get classes
key <- c("character"="c", "integer"="i", "logical"="l")        # make key, etc.
read_csv("test.csv", col_types=paste(key[cols], collapse=""))  # read with read_csv

samp您可以在列表中指定列类型,在该列表中,您只命名那些不希望readr尝试识别列类型的列

read_csv("test.csv", col_types = list(V1 = col_datetime()))

有关更多详细信息,请参见。

谢谢,我还没有意识到我可以在
col\u types
选项中指定哪一列。