readr::read_csv()不';t读取日期并返回NA
我有一个csv文件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
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
选项中指定哪一列。