有没有一种方法可以将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。”。如果确实需要丢失数据,您必须在事后强制执行这些列。希望这有帮助。@FlorianstringsAsFactors
默认情况下对于fread
@Florian我在一个包含单词FALSE和True的列中遇到问题,fread
自动将其转换为布尔列,而我需要的是字符
。此外,我无法指定该列的类型,因为我正在循环中使用此` fread()',如果某些文件没有该列,则会出现错误。如果您事先不知道名称,可以使用nrow=5
,读取前5行,拉出名称,然后构造一个字符向量,其中除单个所需元素外,所有元素都是“字符”。类似于ifelse(names(dtTest)!=“someName”、“character”、“numeric”)
的东西。我使用mutate\u if
来克服这些问题。