factor () для многомерной структуры данных в R - PullRequest
3 голосов
/ 17 февраля 2011

Вот пример:

Матрица типа

     [,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?

Ответы [ 3 ]

3 голосов
/ 17 февраля 2011

Вы можете сгенерировать свой коэффициент напрямую с помощью функции 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"
2 голосов
/ 19 мая 2011

В качестве альтернативы можно использовать 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
2 голосов
/ 17 февраля 2011

вероятно, это простой способ объединить столбцы в символы:

> 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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...