Преобразование «символа» в «POSIX» в R

Я новичок в R и пытаюсь воспроизвести свои текущие отчеты Excel в R. У меня есть CSV-файл с несколькими столбцами, в котором столбец содержит отметку времени в формате «18.04.2022, 14:15» (скопировано непосредственно из файла данных). В конечном итоге мне нужно извлечь номер недели и номер дня для каждой строки в csv.

Я зашел так далеко в преобразовании char в POSIX.

datetest = ("4/18/2022, 12:53:22 AM")
datetest1 <- mdy_hms(datetest)
print(datetest1)
sapply(datetest1, class)

который производит

> datetest = ("4/18/2022, 12:53:22 AM")
> datetest1 <- mdy_hms(datetest)
> print(datetest1)
[1] "2022-04-18 00:53:22 UTC"
> sapply(datetest1, class)
     [,1]     
[1,] "POSIXct"
[2,] "POSIXt" 

Но моя проблема в том, что я пытаюсь преобразовать весь столбец

#import CSV
RawData <- read.csv("data.csv",header = TRUE, ",")
#convert TS to POSIX
#column header is Date.Time.Opened
escRawData[['Date.Time.Opened']] <- mdy_hms(escRawData[['Date.Time.Opened']])

что дает мне это

> escRawData <-read.csv("report1650637729324.csv",header = TRUE, ",")
> #convert TS to POSIX
> escRawData[['Date.Time.Opened']] <- mdy_hms(escRawData[['Date.Time.Opened']])
Warning message:
All formats failed to parse. No formats found. 

который очистил все данные из фрейма данных. Я использовал sapply для проверки типа данных в CSV, и я знаю, что данные являются «символьными».

Я прочитал/просмотрел несколько учебных пособий, описывающих команды lubridate и POSIXlt, все они дают более или менее одну и ту же ошибку «форматы не найдены», поэтому, очевидно, я упускаю что-то основное. Любая помощь будет оценена по достоинству.

можешь опубликовать dput(head(escRawData[['Date.Time.Opened']])) в своем вопросе

onyambu 22.04.2022 20:42

Обратите внимание, что в своем вопросе вы говорили о "4/18/2022, 2:15 PM", но в примере вы использовали "4/18/2022, 12:53:22 AM". Эти двое разные. У одного есть секунды, у другого нет. Итак, как выглядят ваши данные ??

onyambu 22.04.2022 20:45

У нас есть хороший учебник для минимальных рабочих примеров, который я предлагаю вам прочитать, прежде чем публиковать на самом деле. Ваше здоровье!

jay.sf 22.04.2022 20:50

По запросу KU99 вот вывод > dput(head(escRawData[['Date.Time.Opened']])) c("18.04.2022, 00:06", "18.04.2022, 12 :06", "18.04.2022, 00:10", "18.04.2022, 00:10", "18.04.2022, 00:19", "18.04.2022 , 00:26"

rcjohnson 22.04.2022 21:52
3 метода стилизации элементов HTML
3 метода стилизации элементов HTML
Когда дело доходит до применения какого-либо стиля к нашему HTML, существует три подхода: встроенный, внутренний и внешний. Предпочтительным обычно...
Формы c голосовым вводом в React с помощью Speechly
Формы c голосовым вводом в React с помощью Speechly
Пытались ли вы когда-нибудь заполнить веб-форму в области электронной коммерции, которая требует много кликов и выбора? Вас попросят заполнить дату,...
Стилизация и валидация html-формы без использования JavaScript (только HTML/CSS)
Стилизация и валидация html-формы без использования JavaScript (только HTML/CSS)
Будучи разработчиком веб-приложений, легко впасть в заблуждение, считая, что приложение без JavaScript не имеет права на жизнь. Нам становится удобно...
Flatpickr: простой модуль календаря для вашего приложения на React
Flatpickr: простой модуль календаря для вашего приложения на React
Если вы ищете пакет для быстрой интеграции календаря с выбором даты в ваше приложения, то библиотека Flatpickr отлично справится с этой задачей....
В чем разница между Promise и Observable?
В чем разница между Promise и Observable?
Разберитесь в этом вопросе, и вы значительно повысите уровень своей компетенции.
Что такое cURL в PHP? Встроенные функции и пример GET запроса
Что такое cURL в PHP? Встроенные функции и пример GET запроса
Клиент для URL-адресов, cURL, позволяет взаимодействовать с множеством различных серверов по множеству различных протоколов с синтаксисом URL.
0
4
25
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

С вашим текущим кодом одна ошибочная запись даты (по формату или по другому) прерывает преобразование всего столбца. Вы можете заранее проверить необработанные данные или преобразовать их в по ряду и проверить на наличие неудачных преобразований (нет данных), например:

library(dplyr)
library(lubridate)

converted_data <-
    escRawData %>%
      rowwise %>% ## important
      mutate(date_converted = mdy_hms(Date.Time.Opened))

## which rows went wrong?
converted_data %>%
    filter(is.na(date_converted))

Ответ принят как подходящий

Хорошо Все, я узнал, что я делал неправильно. Комментарий @ KU99 помог мне понять это. Мой фактический файл данных не включал секунды в отметку времени. Когда я перешел на использование

escRawData[['Date.Time.Opened']] <- mdy_hm(escRawData[['Date.Time.Opened']])

это сработало отлично.

Другие вопросы по теме