read.csv参数stringsAsFactors不工作?

时间:2013-11-21 06:27:33

标签: r csv r-factor file-import

根据文档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

我尝试使用没有引号的列名,但这也不起作用。 我怎么能纠正这个?

1 个答案:

答案 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进行转换。