我创建了三个向量,并尝试使用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?
答案 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))