Быстрый способ объединить индикаторные переменные в пару в г - PullRequest
3 голосов
/ 22 января 2020

Я бы хотел объединить каждую пару [, 1], [, 2] и [, 3] для [1,] и [2,] отдельно. Пожалуйста, смотрите ожидаемый ввод и вывод ниже. Какой самый быстрый способ сделать это, когда есть более 3 переменных? Заранее спасибо!

Ввод:

data<-matrix(c(1,1,0,1,0,0),nrow=2,ncol=3)
data
     [,1] [,2] [,3]
[1,]    1    0    0
[2,]    1    1    0

Ввод:

 data
         [,1] [,2] [,3]
    [1,]    10    10    00
    [2,]    11    10    10

Объяснение выхода

       [,1] [,2] [,3]
[1,]    paste0([1,1],[1,2])    paste0([1,1],[1,3])    paste0([1,2],[1,3])
[2,]    paste0([2,1],[2,2])    paste0([2,1],[2,3])    paste0([2,2],[2,3])

1 Ответ

3 голосов
/ 22 января 2020

Мы можем использовать combn для создания комбинации номеров столбцов, взятых по 2 за раз, и использовать эти индексы для подстановки и вставки значений.

combn(seq_len(ncol(data)), 2, function(x) paste0(data[, x[1]], data[, x[2]]))

#     [,1] [,2] [,3]
#[1,] "10" "10" "00"
#[2,] "11" "10" "10"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...