Wir mit dplyr/tidyr
versuchen. Erstellen Sie eine Sequenz von 'Daten' vom ersten Tag von '1843' bis zum letzten Tag von '2016', konvertieren Sie sie in data.frame
, separate
in 'Jahr', 'Monat' und 'Tag', dann left_join
mit dem ursprünglichen Dataset ('df1'), so dass die fehlenden Kombinationen in der Spalte "Regenfall" über NA verfügen.
Dates <- seq(as.Date("1843-01-01"), as.Date("2016-12-31"), by = "1 day")
library(tidyr)
library(dplyr)
data_frame(Dates) %>%
separate(., Dates, into = c("Year", "Month", "Day"), convert=TRUE) %>%
left_join(., df1, by = c("Year", "Month", "Day"))
ein reproduzierbares kleines Beispiel Mit
df1 <- data.frame(Year = 1843, Month = 1, Day = c(1, 5, 7, 10), Rainfall= c(4.3, 0, 1.1, 0))
Dates <- seq(as.Date("1843-01-01"), as.Date("1843-01-10"), by = "1 day")
data_frame(Dates) %>%
separate(., Dates, into = c("Year", "Month", "Day"), convert=TRUE) %>%
left_join(., df1, by = c("Year", "Month", "Day"))
# Year Month Day Rainfall
# <dbl> <dbl> <dbl> <dbl>
#1 1843 1 1 4.3
#2 1843 1 2 NA
#3 1843 1 3 NA
#4 1843 1 4 NA
#5 1843 1 5 0.0
#6 1843 1 6 NA
#7 1843 1 7 1.1
#8 1843 1 8 NA
#9 1843 1 9 NA
#10 1843 1 10 0.0
Das gibt: "Fehler: kann nicht auf Spalten 'Jahr' x 'Jahr' beitreten: Index außerhalb der Grenzen" –
@ DJ-AFC Wenn die Spaltennamen sind gleich und haben die gleiche Klasse, es sollte funktionieren – akrun
Ich musste die Spaltenüberschriften im ursprünglichen Datenrahmen umbenennen, aber als ich das tat, funktionierte es perfekt. Vielen Dank @akrun –