有没有一种方法可以将fread用于一列,而将所有其他列作为字符来指定colclass?

有没有一种方法可以将fread用于一列,而将所有其他列作为字符来指定colclass?,r,fread,R,Fread,是否可以使用fread()将colClasses设置为将我的csv文件中的一列读取为numeric,并将所有其他列读取为character 问题是,如果我只使用colClasses=c(“value”=“numeric”)指定此列的类型,fread()会自动为其他列设置类型,但我需要将它们读取为字符其他列有哪些类?如果您只想阻止因子,可以使用StringsAsAffactors=FALSE。在fread的文档中,它说:“fread中的colClasses用于罕见的重写,而不是常规使用。”并且“它

是否可以使用
fread()
colClasses
设置为将我的csv文件中的一列读取为
numeric
,并将所有其他列读取为
character


问题是,如果我只使用
colClasses=c(“value”=“numeric”)
指定此列的类型,
fread()
会自动为其他列设置类型,但我需要将它们读取为
字符

其他列有哪些类?如果您只想阻止因子,可以使用StringsAsAffactors=FALSE。在fread的文档中,它说:“fread中的colClasses用于罕见的重写,而不是常规使用。”并且“它不会将列降级为较低的类型,因为这样会导致NAs。”。如果确实需要丢失数据,您必须在事后强制执行这些列。希望这有帮助。@Florian
stringsAsFactors
默认情况下对于
fread
@Florian我在一个包含单词FALSE和True的列中遇到问题,
fread
自动将其转换为布尔列,而我需要的是
字符
。此外,我无法指定该列的类型,因为我正在循环中使用此` fread()',如果某些文件没有该列,则会出现错误。如果您事先不知道名称,可以使用
nrow=5
,读取前5行,拉出名称,然后构造一个字符向量,其中除单个所需元素外,所有元素都是“字符”。类似于
ifelse(names(dtTest)!=“someName”、“character”、“numeric”)
的东西。我使用
mutate\u if
来克服这些问题。