#> 4 1004 x 有多余的字符 .723450553836301 #> 5 1005 x 有多余的字符 .614524137461558 #> 6 1006 x 有多余的字符 .473980569280684 #> # ……还有 994 行
一个好的策略是逐列处理,直到没有问题为止。这里我们可以看到 x 列有很多解析问题——整数值后面有多余的字符。这表明我们需要改用 double 解析器。
要修复这个调用,首先将列规范复制并粘贴到你的原始调用中:
challenge <- read_csv( readr_example("challenge.csv"), col_types = cols( x = col_integer(), y = col_character() ) )
然后你可以调整 x 列的类型:
challenge <- read_csv( readr_example("challenge.csv"), col_types = cols( x = col_double(), y = col_character() ) )
这解决了第一个问题,但如果我们查看最后几行,会看到它们是存储在字符向量中的日期:
tail(challenge) #> # 一个 tibble:6 × 2 #> x y #>
你可以通过指定 y 为日期列来解决这个问题:
challenge <- read_csv( readr_example("challenge.csv"), col_types = cols( x = col_double(), y = col_date()