Так, data
является кадр данных состоит из множества столбцов, и один из которых называется lpep_pickup_datetime
имеет дату и время в формате «01/01/2016 12:39:36 AM»Как эффективно перебирать столбцы кадра данных?
Я хочу, чтобы проанализировать эти данные по дате и времени, поэтому я пытаюсь создать новый столбец с именем pickup_date
и один по имени pickup_time
с информацией AM или PM.
Я использовал функцию strsplit, чтобы разбить строку на следующую форму: c ("01/01/2016", "12:29:24", "AM"), и я пытаюсь создать вышеупомянутое столбцы из этих данных.
Я написал следующий код:
data$lpep_pickup_datetime=strsplit(data$lpep_pickup_datetime, " ")
data$pickup_date=data$lpep_pickup_datetime[[1]][1]
for (i in seq(1,90181))
{
data$pickup_time[i]=data$lpep_pickup_datetime[[i]][2]
}
Это серьезно неэффективно, так как это занимает слишком много времени, чтобы перебирать 90181 строк данных. Есть ли лучший способ выполнить эту задачу?
Спасибо.
Пожалуйста, покажите небольшой воспроизводимый пример и ожидаемый результат? – akrun
checkout 'separate()' и 'unite()' из 'dplyr' пакета. – Aramis7d
Было бы гораздо более полезно разобрать datetime на класс datetime, такой как POSIXct, после чего вы можете извлечь детали, если вам действительно нужно. – alistaire