2016-05-10 12 views
-2

Ich verwende R und ich habe einen Datenrahmen namens "g1", die Tumorvolumen in Mäusen enthält, die alle eine ID haben. Diese Studie dauert viele Wochen und während dieser Zeit werden die Mäuse aus der Studie entfernt. Ich möchte ein relatives Tumorvolumen für jede Maus basierend auf der ID berechnen, indem ich den Wert von Tag 0 vom Wert des folgenden Tages subtrahiere, und ich kann keinen guten Weg finden, dies zu tun. Zum Beispiel habe ichSubtrahieren ersten Wert von nächsten Wert basierend auf ID

Mouse  Volume  Day 
    711 7.323704  0 
    712 39.751250  0 
    713 22.568248  0 
    714 120.376612  0 
    706 85.169190  0 
    707 29.695617  0 
    708 65.026840  0 
    709 33.697400  0 
    711 44.380412  7 
    712 49.326144  7 
    713 30.275336  7 
    714 136.680960  7 
    709 41.739454  7 

Mäuse 706, 707, 709, wurden aus der Studie genommen (dies geschieht ständig). Ich möchte eine Spalte mit dem Namen "RelVol" erstellen, also (Tag 7 Volumen - Tag 0 Volumen) und (Tag 14 Volumen - Tag 0 Volumen) und so weiter und so weiter bis zum Ende meiner df.

Danke!

Antwort

1

Ich denke, das könnte für Sie arbeiten.

Mit dem data.table Paket

Sie eine data.frame zu einem data.table konvertieren kann sehr einfach:

df <- data.table(OriginalDataFrame) 

dann verwenden:

df[, RelVol:= c(Volume - Volume[1]), by = Mouse] 

wo df Ihre Daten. Tabelle von Werten.

Sie werden eine neue Spalte mit dem Unterschied zu Tag 0 pro Maus

:)

+0

Perfekte Lösung bei jedem ‚Tag‘ erstellt bekommen. Danke @Danny –

Verwandte Themen