将命名列表传递给 cols_only()

Vit*_*ijs 1 r readr

当我尝试做这样的事情时:

data <- read_csv("blah.csv",
+                n_max = 100,
+                col_types = cols_only(list(files = "c"))
+ )
Error: Some `col_types` are not S3 collector objects: 1
Run Code Online (Sandbox Code Playgroud)

所以问题是是否可以将命名列表传递给 cols_only()

sco*_*tus 5

cols_only参数的适当上下文是拼出您想要专门读取的列以及您想要分配给该列的类型。

例子:

data<-read_csv("blah.csv",
  n_max=100,
  col_types = cols_only(
              pumkins = col_factor(c("Hooligan", "Cinderella", "Big Max")),
              weight = col_double()
              ))
Run Code Online (Sandbox Code Playgroud)

在这种情况下,我打开了名为南瓜和权重的两列,为每个列分配了类型,在南瓜的情况下,则是因子水平。 cols_only将接受一个列表,但列表格式如上。您可以根据需要在该列表中放置任意数量的列名和类型描述符。

如果你只想放入一个字母,那么你可以这样设置它相等:

            c<-cols_only(
                  pumkins = col_factor(c("Hooligan", "Cinderella", "Big Max")),
                  weight = col_double())
Run Code Online (Sandbox Code Playgroud)

然后直接将 c 放入:

data <- read_csv("blah.csv",
           n_max = 100,
           col_types = c)
           )
Run Code Online (Sandbox Code Playgroud)