Mit diesem data.frame
dplyr: Unterschied der Werte zwischen Ende Jahr und starten Jahr
siteID <- c(rep("site1", 16), rep("site2", 16), rep("site3", 16),rep("site4", 16))
YEAR <- rep(c("2003", "2004", "2005", "2006"), 16)
parameter <- c(rep("A", 4), rep("B", 4), rep("C", 4), rep("D", 4),
rep("A", 4), rep("B", 4), rep("C", 4), rep("D", 4),
rep("A", 4), rep("B", 4), rep("C", 4), rep("D", 4),
rep("A", 4), rep("B", 4), rep("C", 4), rep("D", 4))
value <- c(seq(1, 4, by=1), seq(10, 40, by=10), seq(12, 18, by=2), seq(5, 20, by=5),
seq(3, 12, by=3), sample(13:18, 4), sample(15:22, 4), sample(10:18, 4),
seq(7, 1, by=-2), sample(15:22, 4), sample(15:19, 4), sample(10:20, 4),
seq(8, 5, by=-1), seq(50, 20, by=-10), seq(16, 10, by=-2), seq(20, 5, by=-5))
df <- data.frame(siteID, parameter, YEAR, value)
head(df, 20)
> head(df, 20)
siteID parameter YEAR value
1 site1 A 2003 1
2 site1 A 2004 2
3 site1 A 2005 3
4 site1 A 2006 4
5 site1 B 2003 10
6 site1 B 2004 20
7 site1 B 2005 30
8 site1 B 2006 40
9 site1 C 2003 12
10 site1 C 2004 14
11 site1 C 2005 16
12 site1 C 2006 18
13 site1 D 2003 5
14 site1 D 2004 10
15 site1 D 2005 15
16 site1 D 2006 20
17 site2 A 2003 3
18 site2 A 2004 6
19 site2 A 2005 9
20 site2 A 2006 12
ich den Unterschied in Wert für jeden Parameter zwischen dem Ende Jahr und beginnen Jahr erhalten möchten.
Das Ergebnis wie dieses
siteID parameter difference
site1 A 3
site1 B 30
site1 C 6
site1 D 15
aussehen Wenn die Daten aus Langformat zu Breitformat umgewandelt wurde, das durch Subtraktion des Startjahres-Säule (2003) von Ende Jahr Säule (2006) getan werden könnte.
Allerdings würde ich es gerne mit dplyr
tun und ohne die Daten in Wide Format zu konvertieren.
Irgendwelche Vorschläge würden geschätzt.
Vielen Dank für Ihre Zeit und Hilfe. – aelwan