Ich habe Stichproben Daten über zwei Datensätze verteilt. loc
beschreibt geographische Positionen, spe
enthält Arten gefunden. Unfortunally werden die Meßstellen durch zwei Faktoren beschrieben (cruise
und station
), so müssen i eindeutige Identifikatoren für beide Daten konstruieren setztMapping-Faktoren zu Datenrahmen
>loc
cruise station lon lat
1 TY1 A1 53.8073 6.7836
2 TY1 3 53.7757 6.7009
3 AZ7 A1 53.7764 6.6758
und
>spe
cruise station species abundance
1 TY1 A1 Ensis ensis 100
2 TY1 A1 Magelona 5
3 TY1 A1 Nemertea 17
4 TY1 3 Magelona 8
5 TY1 3 Ophelia 1200
6 AZ7 A1 Ophelia 950
7 AZ7 A1 Ensis ensis 89
8 AZ7 A1 Spio 1
was ich brauche ist ein einzigartiges hinzuzufügen ID
Kennung als solche
cruise station species abundance ID
1 TY1 A1 Ensis ensis 100 STA0001
2 TY1 A1 Magelona 5 STA0001
3 TY1 A1 Nemertea 17 STA0001
4 TY1 3 Magelona 8 STA0002
5 TY1 3 Ophelia 1200 STA0002
6 AZ7 A1 Ophelia 950 STA0003
7 AZ7 A1 Ensis ensis 89 STA0003
8 AZ7 A1 Spio 1 STA0003
Hier die Daten
loc<-data.frame(cruise=c("TY1","TY1","AZ7"),station=c("A1",3,"A1"),lon=c(53.8073, 53.7757, 53.7764),lat=c(6.7836, 6.7009, 6.6758))
spe<-data.frame(cruise=c(rep("TY1",5),rep("AZ7",3)),station=c(rep("A1",3),rep(3,2),rep("A1",3)),species=c("Ensis ensis", "Magelona", "Nemertea", "Magelona", "Ophelia", "Ophelia","Ensis ensis", "Spio"),abundance=c(100,5,17,8,1200,950,89,1))
Dann konstruiere ich die ID
für loc
loc$ID<-paste("STA",formatC(1:nrow(loc),width=4,format="d",flag="0"),sep="")
aber wie ordne ich die ID
-spe
?
Die Art und Weise, wie ich gefunden habe beinhaltet zwei verschachtelte Schleifen ist ziemlich gut aussehend für einen prozeduralen Programmierer wie mich (wenn verschachtelte Schleifen überhaupt gut aussehend genannt werden können). Ich bin mir so sicher, dass ein Zweiliner in R effizienter und schneller wäre, aber ich kann es nicht herausfinden. Ich möchte wirklich mehr Schönheit in meinem Code, das ist so un-R.
+1 Willkommen bei StackOverflow. Ich wünschte, alle neuen Fragen wären so klar, mit Beispieldaten, erwarteten Ergebnissen und Arbeitscode! – Andrie