如何解决readr::read_csv 使用 cols_only 和拼接列表
我可以像这样读取 cols_only
中定义的列子集:
x <- read_csv(filePath,col_types=cols_only(colA=col_character())
x <- read_csv(filePath,col_types=cols_only(colA='c'))
两者都工作正常,但我尝试创建一个列表以传递到 cols_only
并拼接它,就像我在许多 Tidyverse 函数中所做的那样,但是这个会产生错误。
cols <- list(colA='c')
x <- read_csv(filePath,col_types=cols_only(!!!cols))
我也尝试将其作为命名向量 cols <- c(colA='c')
但我收到错误 Error in !cols: invalid argument type
。
这是功能的限制吗?我看到了这个 GitHub 问题 https://github.com/tidyverse/readr/issues/971,所以希望这个函数可以支持这个功能。
解决方法
如果拼接不起作用,使用do.call
library(readr)
df1 <- read_csv(file.choose(),col_types = do.call(cols_only,cols))
使用一个可重现的小例子
cols1 <- list(`Service Charge`='c',`MONTHLY FEES` = 'c')
df1 <- read_csv(file.choose(),cols1))
-输出
head(df1)
# A tibble: 6 x 2
# `Service Charge` `MONTHLY FEES`
# <chr> <chr>
#1 Customer Transfer Dr. INVESTMENT PURCHASE
#2 Customer Transfer Dr. INVESTMENT PURCHASE
#3 Miscellaneous Payment PAYPAL
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。