我有一个矩阵(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'
我希望将它们存储为因子。有谁知道一个简单的方法来做到这一点?我一直在寻找,而且令我惊讶的是找不到任何对我有用的东西。
答案 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'