2013-08-08 2 views
0

в РИ есть эта матрицаR матрица: уникальная по одному столбцу, добавьте значения на другом столбце и сцепить значения на другом

> a 
    id size pattern         
[1,] "1" "24" "100" 
[2,] "2" "10" "111" 
[3,] "3" "2" "111" 

, и я хочу уникальный по шаблону, добавьте размер и сцепить идентификатор :

> a 
     id size pattern         
[1,] "1" "24" "100" 
[2,] "2-3" "12" "111" (this pattern was duplicated, so add size and concatenate id) 

я могу сделать:

> a = unique(a[,"pattern"]) 

, но я не мог понять, как добавить и конкатенации.

Заранее благодарен!

ответ

1

Если у вас есть несколько столбцов, которые вы хотите обрабатывать как числовые (добавление значений вместе), а некоторые, которые вы хотите рассматривать как символ (вставка их), тогда матрица не является правильной структурой для ваших данных. Вы должны использовать фрейм данных.

Использование plyr:

library(plyr) 
ddply(data.frame(a), .(pattern), summarise, 
     id=paste(id, collapse="-"), 
     size=sum(as.numeric(size))) 
+0

Спасибо за ваш быстрый ответ, но у меня ошибка: \\ Ошибка: длина (строки) == 1 не ИСТИНА – user31168

+0

'sep' в' пасте 'call должен быть' collapse'. Попробуйте снова. –

Смежные вопросы