根据文档read.csv
,参数stringsAsFactors
在设置时应将引用的数据值解释为因子。请考虑以下数据文件,我们将其称为test.csv
。
"a",b,c
"1",2,3
"3",2,3
当我尝试使用read.csv
读取此数据时,它似乎不会将第一列解析为因素。
foo = read.csv("test.csv", stringsAsFactor=T)
is.factor(foo$a)
输出:
[1] FALSE
我尝试使用没有引号的列名,但这也不起作用。 我怎么能纠正这个?
答案 0 :(得分:5)
您的示例数据可以强制数字化。尝试使用不那么强制的数据:
foo <- read.csv(text='"a",b,c
"1",2,3
"3",2,3
"a",2,3 ', stringsAsFactors=TRUE)
> foo$a
# [1] 1 3 a
# Levels: 1 3 a
否则使用colClasses
:
foo <- read.csv(text='"a",b,c
"1",2,3
"3",2,3 ', colClasses=c('factor','numeric','numeric'))
> foo$a
# [1] 1 3
# Levels: 1 3
或者您可以在阅读完数据后使用as.factor
进行转换。