问题描述
我正在读取许多稀疏数据,其中90%+的许多字符列为空白或单个空格。如果前1000行没有数据(根据https://github.com/tidyverse/readr/issues/662设计,它将使用readr :: read_csv猜测这些列为逻辑列。
对于100万以上的行,增加guess_max是不切实际的,如果我未指定列,则在发现包含字符数据的行时,对col_logical的猜测会产生解析失败,因此我一直在使用readr :: spec_csv并手动编辑一次指定一列:
colSpec$cols[['colName']] <- col_character()
如果没有太多列,哪个很好。对于非常广泛的数据,我想使用一种更通用的形式,该形式可以选择规范中的所有逻辑列并进行更改,但我找不到正确的语法。 这不起作用:
library(readr)
cs <- readr::spec_csv("colChar,colBlank,colNum,colSpace,colNA\n
a,1,NA\n
NA,2,NA")
cs
#> cols(
#> colChar = col_character(),#> colBlank = col_logical(),#> colNum = col_double(),#> colSpace = col_logical(),#> colNA = col_logical()
#> )
cs[cs$cols == col_logical()] <- list(col_character())
cs
#> cols(
#> colChar = col_character(),#> colNA = col_logical()
#> )
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)