read.csv参数stringsAsFactors不工作?

mer*_*011 2 csv r file-import r-factor

根据文档read.csv,参数stringsAsFactors在设置时应将引用的数据值解释为因子.考虑以下数据文件,我们将调用它test.csv.

"a",b,c 
"1",2,3 
"3",2,3 
Run Code Online (Sandbox Code Playgroud)

当我尝试使用时读取此数据时read.csv,它似乎不会将第一列解析为因子.

foo = read.csv("test.csv", stringsAsFactor=T)
is.factor(foo$a)
Run Code Online (Sandbox Code Playgroud)

输出:

[1] FALSE
Run Code Online (Sandbox Code Playgroud)

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

Tho*_*mas 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
Run Code Online (Sandbox Code Playgroud)

否则使用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
Run Code Online (Sandbox Code Playgroud)

或者您可以as.factor在读取数据后使用转换.