Wie gestalte ich einen Datenrahmen mit "wiederkehrenden" Spalten um?
Ich bin neu in der Datenanalyse mit R. Ich habe kürzlich einen vorformatierten Datensatz für ein Umweltbeobachtungsmodell erhalten, von dem ein Beispielsatz unten gezeigt wird:
date site obs mod site obs mod
2000-09-01 00:00:00 campus NA 61.63 city centre 66 56.69
2000-09-01 01:00:00 campus 52 62.55 city centre NA 54.75
2000-09-01 02:00:00 campus 52 63.52 city centre 56 54.65
Grundsätzlich umfassen die Daten die Zeitreihen der stündlich beobachteten und modellierten Konzentrationen eines Schadstoffs an verschiedenen Stellen in "wiederkehrenden Spalten", d. H. Stelle - obs - mod (in Beispiel I wurden nur 2 von insgesamt 75 Stellen gezeigt). Ich habe diesen "breiten" Datensatz als Datenrahmen eingelesen und wollte ihn in das "engere" Format umformen als:
date site obs mod
2000-09-01 00:00:00 campus NA 61.63
2000-09-01 01:00:00 campus 52 62.55
2000-09-01 02:00:00 campus 52 63.52
2000-09-01 00:00:00 city centre 66 56.69
2000-09-01 01:00:00 city centre NA 54.75
2000-09-01 02:00:00 city centre 56 54.65
Ich glaubte, dass ich das Paket "reshape2" verwenden sollte, um dies zu tun. Zuerst habe ich versucht, den Datensatz zu schmelzen und dann zu gießen:
test.melt <- melt(test.data, id.vars = "date", measure.vars = c("site", "obs", "mod"))
Es wurde jedoch nur die Hälfte der Daten zurückgegeben, d. H. Die Aufzeichnungen der Standorte ("Stadtzentrum") nach dem ersten ("Campus") wurden alle abgeschnitten:
date variable value
2001-01-01 00:00:00 site campus
2001-01-01 01:00:00 site campus
2001-01-01 02:00:00 site campus
2001-01-01 00:00:00 obs NA
2001-01-01 01:00:00 obs 52
2001-01-01 02:00:00 obs 52
2001-01-01 00:00:00 mod 61.63
2001-01-01 01:00:00 mod 62.55
2001-01-01 02:00:00 mod 63.52
Ich habe dann versucht Neufassung:
test.recast <- recast(test.data, date ~ site + obs + mod)
Es gab jedoch mit Fehlermeldung zurück:
Error in eval(expr, envir, enclos) : object 'site' not found
Ich habe versucht, nach vorherigen Fragen zu suchen, habe jedoch keine ähnlichen Szenarien gefunden (korrigieren Sie mich, wenn ich falsch liege). Könnte mir bitte jemand dabei helfen?
Vielen Dank im Voraus!