0

in R I have this matrix

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

and I want to unique by pattern, add the size and concatenate the id:

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

I can do:

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

but I couldn't figure out how to add and concatenate.

Thanks in advance!

4

1 に答える 1

1

数値として扱いたい (値を加算する) 列と文字として扱いたい (貼り付けた) 列がある場合、行列はデータの正しい構造ではありません。データフレームを使用する必要があります。

プライアの使用:

library(plyr)
ddply(data.frame(a), .(pattern), summarise, 
      id=paste(id, collapse="-"),
      size=sum(as.numeric(size)))
于 2013-08-08T05:49:36.140 に答える