Я хочу использовать sapply
(или что-то подобное), чтобы преобразовать определенные столбцы в POSIXct в R data.frame, но сохранить формат даты и времени для столбцов. Когда я делаю это в настоящее время, он преобразует формат в числовой. Как я могу это сделать? Пример ниже.
#sample dataframe
df <- data.frame(
var1=c(5, 2),
char1=c('he', 'she'),
timestamp1=c('2019-01-01 20:30:08', '2019-01-02 08:27:34'),
timestamp2=c('2019-01-01 12:24:54', '2019-01-02 10:57:47'),
stringsAsFactors = F
)
#Convert only columns with 'timestamp' in name to POSIXct
df[grep('timestamp', names(df))] <- sapply(df[grep('timestamp', names(df))], function(x) as.POSIXct(x, format='%Y-%m-%d %H:%M:%S'))
df
var1 char1 timestamp1 timestamp2
1 5 he 1546392608 1546363494
2 2 she 1546435654 1546444667
Примечание: я могу использовать as.posixlt
вместо as.posixct
, и это работает, но мне нужны данные в формате POSIXct. Я также попытался сначала преобразовать в POSIXlt, а затем в POSIXct, но это также привело к преобразованию столбцов в числовые.