readr::read_csv("file.csv", col_types = rep("c", times = 18)) gives Error: not compatible with STRSXP
readr::read_csv("file.csv", col_types = rep("c", times = 18)) gives Error: not compatible with STRSXP
我正在尝试读取一个相当简单的 csv 文件,但是 readr
在我尝试指定列类型时抛出错误。这是我的一小段数据:
text <- "Item,Date,Time,SeizureTime,ET,OriginatingNumber,TerminatingNumber,IMEI,IMSI,CT,Feature,DIALED,FORWARDED,TRANSLATED,ORIG_ORIG,MAKE,MODEL,TargetNumber
3,10/31/2012,7:53:00,0:15,1:43,(123)555-1216,(123)555-5662,,,MO,[],,11235552511,,,,,(123)555-5662
4,10/31/2011,9:04:00,0:25,0:00,(123)555-0214,(123)555-5662,,,MO,[],,11235552511,,,,,(123)555-5662
9,10/31/2014,9:08:00,0:11,2:13,(123)555-8555,(132)555-5662,,,MO,[],,11235552511,,,,,(123)555-5662
12,10/31/2011,9:27:00,0:07,0:10,(123)555-0214,(123)555-5662,,,MO,[],,11235552511,,,,,(123)555-5662
13,10/31/2015,9:35:00,0:27,0:00,(123)555-0214,(123)555-5662,,,MO,[],,11235552511,,,,,(123)555-5662
16,10/31/2011,10:09:00,0:10,14:13,(123)555-1216,(123)555-5662,,,MO,[],,11235552511,,,,,(123)555-5662"
dat <- read.table(text = text, sep = ",", header = TRUE)
当尝试使用 read_csv("file.csv", col_types = rep("c", times = 18))
读取实际 CSV 文件时,出现标题中提到的错误。我已经看到几个关于此错误的 SO 问题,它们似乎都与后台发生的 C++ 函数有关,但我不知道如何补救。如果我去掉 col_types
参数,错误就会消失,但它不能正确解析数据。
当您指定使用的列时 rep("c", times=18)
,但这会创建一个包含 18 个元素的向量。从 ?read_csv
的帮助中,col_types
参数采用单个列快捷方式字符串,如 "ccccdc"
。所以我们将 c 粘贴在一起形成一个字符串:
read_csv(text, col_types=paste(rep("c", 18), collapse=""))
Source: local data frame [6 x 18]
Item Date Time SeizureTime ET
(chr) (chr) (chr) (chr) (chr)
1 3 10/31/2012 7:53:00 0:15 1:43
2 4 10/31/2011 9:04:00 0:25 0:00
3 9 10/31/2014 9:08:00 0:11 2:13
4 12 10/31/2011 9:27:00 0:07 0:10
5 13 10/31/2015 9:35:00 0:27 0:00
6 16 10/31/2011 10:09:00 0:10 14:13
我正在尝试读取一个相当简单的 csv 文件,但是 readr
在我尝试指定列类型时抛出错误。这是我的一小段数据:
text <- "Item,Date,Time,SeizureTime,ET,OriginatingNumber,TerminatingNumber,IMEI,IMSI,CT,Feature,DIALED,FORWARDED,TRANSLATED,ORIG_ORIG,MAKE,MODEL,TargetNumber
3,10/31/2012,7:53:00,0:15,1:43,(123)555-1216,(123)555-5662,,,MO,[],,11235552511,,,,,(123)555-5662
4,10/31/2011,9:04:00,0:25,0:00,(123)555-0214,(123)555-5662,,,MO,[],,11235552511,,,,,(123)555-5662
9,10/31/2014,9:08:00,0:11,2:13,(123)555-8555,(132)555-5662,,,MO,[],,11235552511,,,,,(123)555-5662
12,10/31/2011,9:27:00,0:07,0:10,(123)555-0214,(123)555-5662,,,MO,[],,11235552511,,,,,(123)555-5662
13,10/31/2015,9:35:00,0:27,0:00,(123)555-0214,(123)555-5662,,,MO,[],,11235552511,,,,,(123)555-5662
16,10/31/2011,10:09:00,0:10,14:13,(123)555-1216,(123)555-5662,,,MO,[],,11235552511,,,,,(123)555-5662"
dat <- read.table(text = text, sep = ",", header = TRUE)
当尝试使用 read_csv("file.csv", col_types = rep("c", times = 18))
读取实际 CSV 文件时,出现标题中提到的错误。我已经看到几个关于此错误的 SO 问题,它们似乎都与后台发生的 C++ 函数有关,但我不知道如何补救。如果我去掉 col_types
参数,错误就会消失,但它不能正确解析数据。
当您指定使用的列时 rep("c", times=18)
,但这会创建一个包含 18 个元素的向量。从 ?read_csv
的帮助中,col_types
参数采用单个列快捷方式字符串,如 "ccccdc"
。所以我们将 c 粘贴在一起形成一个字符串:
read_csv(text, col_types=paste(rep("c", 18), collapse=""))
Source: local data frame [6 x 18]
Item Date Time SeizureTime ET
(chr) (chr) (chr) (chr) (chr)
1 3 10/31/2012 7:53:00 0:15 1:43
2 4 10/31/2011 9:04:00 0:25 0:00
3 9 10/31/2014 9:08:00 0:11 2:13
4 12 10/31/2011 9:27:00 0:07 0:10
5 13 10/31/2015 9:35:00 0:27 0:00
6 16 10/31/2011 10:09:00 0:10 14:13