-1

我有一个具有逻辑值(真/假)的矩阵(x)。我想将这些值转换为字符('Present'/'Absent')并将它们变成因子。为了说明,我有这个:

 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'

我希望它们被存储为因子。有谁知道一个简单的方法来做到这一点?我一直在寻找,但令人惊讶的是,我找不到任何对我有意义的东西。

4

2 回答 2

3

ifelse应该管用:

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

据我所知,矩阵不能有类factor,因为factors 不是atomic。看

?matrix
?atomic
于 2013-09-21T22:31:11.710 回答
0

或者,

foo<-as.data.frame(matrix('Present',nrow=nrow(yourmat),ncol=ncol(yourmat))
foo[!yourmat]<-'Absent'
于 2013-09-22T00:36:31.627 回答