【发布时间】:2013-04-11 07:16:17
【问题描述】:
例如,我有一个矩阵:
> a = cbind(sample(c(0,1),6,replace=T), sample(c(0,1),6,replace=T))
> a
[,1] [,2]
[1,] 0 0
[2,] 0 0
[3,] 0 1
[4,] 1 0
[5,] 1 0
[6,] 1 1
我想从a 中创建一个对象b,以便b 是一个因素,每个级别代表a 中的不同行。在这种情况下,b 将是:
> b
[1] 1 1 2 3 3 4
Levels: 1 2 3 4
我可以用肮脏的方式做到这一点,但我想知道是否有一个优雅的解决方案?
【问题讨论】:
-
数据集有多大?
a总是有 2 列吗?a将始终仅包含integer、仅包含numeric还是仅包含characters? -
你目前使用的“肮脏”方式是什么?我们如何确保我们的方式也不脏?
-
我认为的肮脏方式是使用
paste连接每一行。但我忘了我也可以使用apply函数对其进行矢量化。