2016-01-14 1 views
0

Как эффективно связывать два столбца с ключом в один столбец пар, который сохранит лексикографический порядок двух ключей? Я заинтересован в использовании «LOC» как одно (отсортированный) переменнойСоздание лексикографических отсортированных пар в data.table

dt = data.table( 
    loc.x = as.integer(c(1, 1, 3, 1, 3, 1)), 
    loc.y = as.integer(c(1, 2, 1, 2, 1, 2)), 
    value = letters[1:6] 
) 
setkey(dt, loc.x, loc.y) 
+2

Каков ваш ожидаемый результат – mtoto

+0

mtoto, есть ли что-то вроде кортежей Python? Я даже не знаю, как представить парный объект в R – Amitai

+0

Я не уверен, чего вы пытаетесь достичь? – mtoto

ответ

0

Я не уверен, что вы хотите, но вы можете свернуть их в качестве символов и сортирует их, которые дают бы 1,1, 1,2, 1,3, ..., 2.1, 2.2, ...

> loc.x = as.integer(c(1, 1, 3, 1, 3, 1)) 
> loc.y = as.integer(c(1, 2, 1, 2, 1, 2)) 
> x = cbind(loc.x,loc.y) 
> sort(apply(x, 1, function(a) paste0(as.character(a), collapse = "."))) 
[1] "1.1" "1.2" "1.2" "1.2" "3.1" "3.1" 
Смежные вопросы