2013-09-21 59 views
-1

我有一個具有邏輯值(TRUE/FALSE)的矩陣(x)。我想將這些值轉換爲字符('Present'/'Absent')並將它們轉換爲因子。爲了說明這一點,我有這樣的:將邏輯矩陣(TRUE/FALSE)轉換爲字符矩陣(存在/不存在)

ColA, ColB, ..., ColN 

RowA, TRUE, FALSE, ..., TRUE 

RowB, FALSE, TRUE, ..., FALSE 

... 

RowN, TRUE, TRUE, ..., TRUE 

我想使這個:

ColA, ColB, ..., ColN 

RowA, 'Present', Absent', ..., 'Present' 

RowB, 'Absent', 'Present', ..., 'Absent' 

... 

RowN, 'Present', 'Present', ..., 'Present' 

而且我希望他們被存儲爲因素。有誰知道一個簡單的方法來做到這一點?我一直在尋找,我驚奇地找不到任何對我有意義的東西。

+0

所以使用'data.frame'的結果 –

回答

3

ifelse應該工作:

set.seed(1) 
mat <- matrix(sample(c(TRUE,FALSE),20,TRUE),nrow=4) 
ifelse(mat,'Present','Absent') 

據我所知,矩陣不能有factor類,因爲factor s爲不atomic。見

?matrix 
?atomic 
0

或者,

foo<-as.data.frame(matrix('Present',nrow=nrow(yourmat),ncol=ncol(yourmat)) 
foo[!yourmat]<-'Absent'