2013-11-21 28 views
2

根據文檔read.csv,參數stringsAsFactors設置時應引起引用的數據值被解釋爲因子。考慮下面的數據文件,我們將調用test.csvread.csv參數stringsAsFactor不工作?

"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

'stringsAsFactors = TRUE'?是否錯過了「s」事項? – alittleboy

+0

據我所知,'T == TRUE'。另外,我在哪裏錯過了's'? – merlin2011

+0

在'stringsAsFactors'的參數名稱中,而不是'stringsAsFactor' – alittleboy

回答

4

您的示例數據對數字是強制性的。嘗試用那些不那麼強制轉換的數據:

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在讀取數據後轉換

+0

我可以強制將數字強制轉換爲數字嗎? – merlin2011

+0

@ merlin2011請參閱編輯。 – Thomas