[R] Finde kleinstes Element pro Gruppe in Matrix?

BaseBallBatBoy

Erfahrenes Mitglied
Hallo!

Ich bin neu was R betrifft.

Ich habe eine Matrix my.Matrix. Hier ein Beispiel aus der Matrix:
my.Matrix[my.Matrix[,1] == 3,]
Group_ID, Element_ID
3,5
3,7
3,2
3,3

Es gibt also eine Gruppen ID 3 und diese Gruppe besteht aus den Elementen 2,3,5 und 7.
So zieht sich das durch die ganze Matrix.

Was ich nun möchte, ist dass die Gruppen ID immer der tiefesten Element ID enstrpricht (man kann das machen weil eine Element ID nur jeweils in einer einzigen Gruppe vorkommen kann) und zudem ein G vordarn geschrieben wird.

Also ich möchte das:
Group_ID, Element_ID
G2,5
G2,7
G2,2
G2,3

Was muss ich tun, damit die Gruppen IDs in der gesamten Matrix entsprechend ersetzt werden?

Gruss
BBBB
 
bin inzwischen selbst darauf gemkommen:

labels <- tapply(my.Matrix[,2], as.factor(my.Matrix[,1]),min)
newnames <- apply(my.Matrix, 1, function(r) labels[as.character(r[1])])
my.Matrix[,1] <- newnames
 
Zurück