Tengo datos de muestreo distribuidos en dos conjuntos de datos. loc
describe las posiciones geográficas, spe
contiene especies encontradas. Unfortunally, las estaciones de muestreo se describen por dos factores (cruise
y station
), así que necesitan para construir identificadores únicos para los dos conjuntos de datosfactores de mapeo en el marco de datos
>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
y
>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
lo que necesito es añadir un único identificador ID
como tal
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
Aquí está los datos
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))
Entonces, construyo el ID
para loc
loc$ID<-paste("STA",formatC(1:nrow(loc),width=4,format="d",flag="0"),sep="")
pero ¿cómo en el mapa los ID
-spe
?
La forma que encontré involucra dos bucles anidados que es bastante atractiva para un programador de procedimientos como yo (si los bucles anidados se pueden llamar apuestos). Estoy tan seguro de que un dos líneas en R sería más eficiente y más rápido, pero no puedo entenderlo. Realmente quiero más belleza en mi código, esto es tan poco-R.
+1 Bienvenido a StackOverflow. ¡Ojalá todas las preguntas nuevas fueran tan claras como esta, con datos de muestra, resultados esperados y código de trabajo! – Andrie