Seite 1 von 1

Ermittlung des Alters anhand von Datum

Verfasst: Di Jan 01, 2019 7:46 pm
von Chrispe
Guten Abend liebe Community,


mein erster Post und gleich eine Frage - vll ein wenig Schande auf mein Haupt, doch schließlich ist ein Forum ja auch für Fragen da :)

Leider habe ich bei einer aktuellen Umfrage von mir einen kleinen Fehler gemacht, und anstelle des Alters das Geburtsdatum abgefragt... merkwürdigerweise dachte ich, dass ich daraus ja schnell das Alter ermitteln kann, doch raubt mir unser geliebtes "R" nun den Verstand...


Folgendes Zeigt mir die Spalte "P1" an:

Code: Alles auswählen

[1] "1989-09-20 00:00:00"
... und noch viele weitere Werte

Natürlich würde ich mir nichts inniger wünschen, als dass dort "29" stünde (als Alter). Gerne auch in der nächsten Spalte..

Aktuell bin ich soweit, dass ich wenigstens das exakte Alter in Tagen habe.. :roll: :lol:

Code: Alles auswählen

as.Date(P1[1-53])-as.Date(Sys.time())
Time differences in days
 [1] -10695 ....und viele weitere
Doch wie bekomme ich dies nun entweder in eine neue Spalte (und am besten in Jahren) oder ersetzte am besten das Datum durch das aktuelle Alter?


Vielen Dank im Voraus für eure Unterstützung! :)

vG

Chrispe

Re: Ermittlung des Alters anhand von Datum

Verfasst: Mi Jan 02, 2019 7:51 am
von jogo
Hallo Chrispe,

willkommen im Forum!
Reicht Dir auch eine grobe Näherung?

Code: Alles auswählen

P1 <- "1989-09-20 00:00:00"
Alter <- 2018 - as.numeric(substr(P1, 1, 4))
Gruß, Jörg

Re: Ermittlung des Alters anhand von Datum

Verfasst: Mi Jan 02, 2019 10:26 am
von Athomas
Durch googeln findet man in https://stackoverflow.com/questions/361 ... -ages-in-r diese solide Lösung:

Code: Alles auswählen

age = function(from, to) {
  from_lt = as.POSIXlt(from)
  to_lt = as.POSIXlt(to)
  
  age = to_lt$year - from_lt$year
  
  ifelse(to_lt$mon < from_lt$mon |
           (to_lt$mon == from_lt$mon & to_lt$mday < from_lt$mday),
         age - 1, age)
}

Datumsstring <- c("1972-01-01 00:00:00", "1981-12-22 00:00:00","1990-06-23 00:00:00","1999-09-24 00:00:00")
heute        <- Sys.Date()
Alter        <- age(Datumsstring, heute)

Re: Ermittlung des Alters anhand von Datum

Verfasst: Mo Sep 22, 2025 10:24 am
von anne28
Moin Moin,

Dein Ansatz mit as.Date() ist schon richtig, aber für die Altersberechnung in Jahren ist es besser, ein Paket wie lubridate oder chron zu verwenden. Mit lubridate kannst du z. B. so vorgehen:

library(lubridate)

# Beispiel-Daten
geburtsdatum <- as.Date("1989-09-20")

# heutiges Datum
heute <- Sys.Date()

# Alter in Jahren
alter <- as.period(interval(geburtsdatum, heute))$year
alter

Falls du das Ganze direkt für eine ganze Spalte machen möchtest:

df$Alter <- as.period(interval(as.Date(df$P1), Sys.Date()))$year


Dann hast du in einer neuen Spalte das Alter in Jahren stehen

Und falls du das Ganze einfach mal schnell ausprobieren oder querchecken möchtest, kannst du auch einen online Altersrechner nutzen.

Damit siehst du sofort, ob dein R-Ergebnis stimmt.

Viele Grüße

Re: Ermittlung des Alters anhand von Datum

Verfasst: Di Sep 23, 2025 8:35 am
von bigben
Hallo Anne,

Ich weiß nicht, ob Du gesehen hast, wie lange es her ist, dass Chrispe diese Frage gestellt hat. Sie/er wird wohl nicht mehr antworten aber natürlich ist es gut, wenn passende Antworten über Google gefunden werden können.
Ich freue mich, dass Du zu uns gestoßen bist und anderen helfen willst. Leider verliert dieses Forum ähnlich wie viele seine Bedeutung: Die Zahl der Leute, die hier Fragen einstellen ist sehr klein geworden. Wir vermuten, dass die Leute primär bei Claude, ChatGPT, Gemini etc. Antworten holen.
Wir freuen uns, wenn Du zum Forum dazu stößt aber sei nicht zu enttäuscht, wenn hier nicht mehr viel Traffic ist.

VG,
Bernhard