3

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

我尝试使用不带引号的列名,但这也不起作用。我该如何纠正?

4

1 回答 1

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在读取数据后转换使用。

于 2013-11-21T06:36:04.527 回答