以下是一个例子:
像
这样的矩阵 [,1] [,2]
[1,] 1 4
[2,] 2 3
[3,] 3 2
[4,] 4 1
[5,] 1 4
[6,] 2 3
[7,] 3 2
[8,] 4 1
我想得到一些像
这样的关卡(1,4) (2,3) (3,2) (4,1)
R中是否有可用的功能?
答案 0 :(得分:3)
您可以使用interaction
函数直接生成因子,例如:
R> d <- matrix(1:10, ncol=2)
R> d
[,1] [,2]
[1,] 1 6
[2,] 2 7
[3,] 3 8
[4,] 4 9
[5,] 5 10
然后:
R> v <- interaction(d[,1],d[,2], drop=TRUE)
R> v
[1] 1.6 2.7 3.8 4.9 5.10
Levels: 1.6 2.7 3.8 4.9 5.10
R> class(v)
[1] "factor"
答案 1 :(得分:2)
可能很容易将cols连成字符:
> d <- matrix(c(1:4,1:4,4:1,4:1), ncol=2)
> factor(apply(d, 1, paste ,collapse=","))
[1] 1,4 2,3 3,2 4,1 1,4 2,3 3,2 4,1
Levels: 1,4 2,3 3,2 4,1
答案 2 :(得分:2)
或者,可以直接使用factor()
:
> d <- rbind(c(1,3),c(2,3),c(3,2),c(4,1),c(1,3))
> factor(d[,1]):factor(d[,2])
[1] 1:3 2:3 3:2 4:1 1:3
Levels: 1:1 1:2 1:3 2:1 2:2 2:3 3:1 3:2 3:3 4:1 4:2 4:3