具有级别名称

时间:2015-06-19 17:01:25

标签: r

我创建了三个向量,并尝试使用cbind将它们组合到一个表中。第三个向量是三个级别的因子。我得到了这个输出:

 v1 <- c(1,2,3)
 v2 <- c(4,5,6)
 v3 <- factor(c('lorem','ipsum','dolor'))
 cbind(v1,v2,v3)
     v1 v2 v3
[1,]  1  4  3
[2,]  2  5  2
[3,]  3  6  1

首选输出为:

 cbind(v1,v2,v3)
     v1 v2 v3
[1,]  1  4  lorem
[2,]  2  5  ipsum
[3,]  3  6  dolor

是否可以获取级别名称而不是上面显示的ID?

1 个答案:

答案 0 :(得分:1)

不确定为什么需要这样做。最好使用可容纳多个类的data.frame。使用cbind,我们得到matrix,而matrix只能容纳一个类。因此,即使存在单个非数字值,列也都会转换为&#39;字符&#39;类。

 cbind(v1, v2, v3=levels(v3)[v3])
 #     v1  v2  v3     
 #[1,] "1" "4" "lorem"
 #[2,] "2" "5" "ipsum"
 #[3,] "3" "6" "dolor"

或者

 cbind(v1, v2, v3=as.character(v3))