Wenn Änderungen nicht unzulässig wären, könnte man im nächsten Schritt DuckDB bitten, die Zeitangaben automatisch in der ganzen Spalte durch ein TIMESTAMP Format zu ersetzen. Als SQL-Anfänger würde ich mir das etwa so vorstellen:
Code: Alles auswählen
library("duckdb")
bsp <- read.csv(text = "time, beta, alpha
01/02/2022 22:03:13.151,0.83987,0.84129
01/02/2022 22:05:03.942,0.83959,0.84143
01/02/2022 22:05:09.121,0.83982,0.84124")
con <- dbConnect(duckdb(), dbdir = ":memory:") #Erzeuge Datenbank im RAM
dbWriteTable(con, "tabelle", bsp) #Schreibe Dataframe in Datenbank
dbGetQuery(con, "FROM tabelle;") #Daten mit Zeitangaben als String
#> time beta alpha
#> 1 01/02/2022 22:03:13.151 0.83987 0.84129
#> 2 01/02/2022 22:05:03.942 0.83959 0.84143
#> 3 01/02/2022 22:05:09.121 0.83982 0.84124
dbExecute(con, "ALTER TABLE tabelle ALTER time SET DATA TYPE TIMESTAMP USING strptime(time, '%d/%m/%Y %H:%M:%S.%g');")
#> [1] 0
dbGetQuery(con, "FROM tabelle") #Daten nach der Umwandung in TIMESTAMP
#> time beta alpha
#> 1 2022-02-01 22:03:13 0.83987 0.84129
#> 2 2022-02-01 22:05:03 0.83959 0.84143
#> 3 2022-02-01 22:05:09 0.83982 0.84124
dbDisconnect(con)
Dazu zwei Anmerkungen:
1. Nein, ich habe keine Ahnung wie lange das für 1 TB dauern würde.
2. Der aufmerksame Beobachter wird merken: In meinem Post eins weiter oben werden die Timestamps mit Sekundenbruchteilen angezeigt, hier jetzt auf einmal nicht mehr. Ob das wieder nur eine Frage der Ausgabe ist oder ob das tatsächlich ein Fehler ist, dem werde ich jetzt nicht weiter nachgehen. Da müsstest Du Dich jetzt ggf. selbst drum kümmern, Aaron.
Schönen Abend noch,
Bernhard