我正在尝试读取csv文件 - 并且我试图强制列为某种类型。但是最后一列给出了一个错误:“is.list(col_types)中的错误:未知的快捷方式:g”
有什么建议吗?谢谢!
# Create data frame & write it out:
temp <- data.frame(a = 1:1001,
mystring_b = c(rep(NA, 1000), "1"),
mystring_c = c(rep(NA, 1000), "2"))
write.csv(temp, "temp.csv", row.names = F)
# Grab its names:
temp_labels <- names(read_csv("temp.csv", n_max = 0))
# Specify data type - for each column:
labels_type <- ifelse(grepl("mystring", temp_labels), "numeric", "guess")
# Reading in while forcing column types:
temp <- read_csv("temp.csv", col_types = labels_type)
# Error in is.list(col_types) : Unknown shortcut: g
答案 0 :(得分:3)
以下是帮助页面col_types
中?read_csv
的说明摘录:
col_types
... 或者,您可以使用紧凑的字符串表示形式,其中每个字符代表一列:
c
=字符,i
=整数,n
=数字,d
= double,{{ 1}} =逻辑,l
=日期,D
=日期时间,T
=时间,t
=猜测,或?
/ {{1}跳过列。
因此,正如错误消息所示,_
不是可接受的快捷方式。您应该使用-
代替。
此外,尽管"g"
似乎幸运地从您的"?"
规范中获取了第一个字符,但为了安全起见,您应该使用read_csv
来匹配文档。实际上,如果你看一下例子,目的是使用单个字符串,而不是长度为&gt;的字符串向量。 1,作为规范。再说一次,如果您的方法不正常,那么您很幸运,但最好匹配文档,如下所示:
"numeric"