将逻辑矩阵(TRUE / FALSE)转换为字符矩阵(Present / Absent)

时间:2013-09-21 22:26:19

标签: r matrix coding-style

我有一个矩阵(x),它有逻辑值(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'

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

2 个答案:

答案 0 :(得分:3)

ifelse应该有效:

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

据我所知,由于factor不是factor,因此矩阵不能有atomic个等级。见

?matrix
?atomic

答案 1 :(得分:0)

或者,

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