Ich hab da mal wieder ein kleines Problem und hoffe auf Hilfe
ich habe folgenden Datensatz:
Code: Alles auswählen
df <- structure(list(Datum = structure(c(1556668800, 1556672400, 1556676000,
1556679600, 1556683200, 1556686800, 1556690400, 1556694000, 1556697600,
1556701200, 1556704800, 1556708400, 1556712000, 1556715600, 1556719200,
1556722800, 1556726400, 1556730000, 1556733600, 1556737200, 1556740800,
1556744400, 1556748000, 1556751600, 1556755200, 1556758800, 1556762400,
1556766000, 1556769600, 1556773200, 1556776800, 1556780400, 1556784000,
1556787600, 1556791200, 1556794800, 1556798400, 1556802000, 1556805600,
1556809200, 1556812800, 1556816400, 1556820000, 1556823600, 1556827200,
1556830800, 1556834400, 1556838000, 1556841600), class = c("POSIXct",
"POSIXt"), tzone = "GMT"), Tageszeit = c("Nacht", "Nacht", "Nacht",
"Nacht", "Nacht", "Nacht", "Nacht", "Nacht", "Tag", "Tag", "Tag",
"Tag", "Tag", "Tag", "Tag", "Tag", "Tag", "Tag", "Nacht", "Nacht",
"Nacht", "Nacht", "Nacht", "Nacht", "Nacht", "Nacht", "Nacht",
"Nacht", "Nacht", "Nacht", "Nacht", "Tag", "Tag", "Tag", "Tag",
"Tag", "Tag", "Tag", "Tag", "Tag", "Tag", "Nacht", "Nacht", "Nacht",
df<- read.table("Test.Rforum.csv",sep=";", header=TRUE, stringsAsFactors = F,na.strings="NA") # files[i] --> Zugriff auf i-tes Element des Objekts files
df<- read.table("Test.Rforum.csv",sep=";", header=TRUE, stringsAsFactors = F,na.strings="NA") # files[i] --> Zugriff auf i-tes Element des Objekts files
"Nacht", "Nacht", "Nacht", "Nacht", "Nacht"), Auswahl = c(2L,
2L, 2L, 0L, 2L, 2L, 0L, 2L, 1L, 1L, 1L, 1L, 0L, 0L, 0L, 0L, 0L,
1L, 2L, 2L, 2L, 2L, 2L, 2L, 0L, 0L, 0L, 0L, 2L, 2L, 2L, 1L, 1L,
1L, 1L, 1L, 1L, 1L, 0L, 0L, 1L, 1L, 2L, 2L, 2L, 0L, 2L, 2L, 2L
)), .Names = c("Datum", "Tageszeit", "Auswahl"), row.names = c(NA,
-49L), class = "data.frame")
In diesem Beispiel hätte ich gerne ein Output der folgendermaßen aussieht:
Code: Alles auswählen
df.out <- structure(list(Datum = structure(c(18017, 18017, 18018, 18018
), class = "Date"), Tageszeit = c("Nacht", "Tag", "Nacht", "Tag"
), Auswahl = c("Ja", "Nein", "Ja", "Ja")), .Names = c("Datum",
"Tageszeit", "Auswahl"), row.names = c(NA, -4L), class = "data.frame")
Hier mal der Code für die Anzahl aufeinanderfolgende Ereignisse:
Code: Alles auswählen
df %>%
mutate(Auswahl = ifelse(is.na(Auswahl), 0, Auswahl)) %>%
group_by(group = cumsum(c(0, diff(Auswahl) != 0))) %>%
filter(Auswahl == 1| Auswahl==2 & n() > 1) %>%
summarize("date"=min(as.character(date)),
"Daytime"=min(as.character(Tageszeit)),
"Length"=n()) %>%
ungroup() %>%
select(-matches("group"))