#r
Вопрос:
У меня возникла проблема с указанием формата даты моих данных, расположенных следующим образом:
Date Longitude Latitude Elevation Max Temperature Min Temperature Precipitation Wind Relative Humidity Solar
1/1/1979 40.625 10.1473999 594 31.784 14.711 0 1.34012963 0.332977248 23.69273112
1/2/1979 40.625 10.1473999 594 30.548 15.001 0 1.440527678 0.445704584 23.2192062
1/3/1979 40.625 10.1473999 594 30.029 18.724 0.020599366 1.950813349 0.532062642 18.34447248
1/4/1979 40.625 10.1473999 594 31.311 17.802 0 2.150911946 0.466495869 23.07077748
я попробовал использовать as.Дата, но результат выглядит следующим образом:
gewane_t$Date <- as.Date(gewane_t$Date,format("%m/%d/%Y"))
Ошибка в charToDate(x) :
символьная строка не имеет стандартного однозначного формата
любое решение.
с уважением,
Комментарии:
1. Вместо
as.Date(gewane_t$Date, format("%m/%d/%Y")
того, чтобы пытатьсяas.Date(gewane_t$Date, format = "%m/%d/%Y")
.2. Это и есть результат. Любые предложения.gewane_t$Дата
3. Это странное сообщение. Это наводит на мысль, что
gewane_t$Date
это численно. Из приведенной выше таблицы и вашего сообщения об ошибке я бы предположил, что это символьная строка. Был ли этот файл открыт в Excel и сохранен? Excel показывает дату, но в фоновом режиме это просто число.4. да, он был сохранен в excel.
5. Ах, хорошо, если столбец был в формате даты, и вы сохраните его в виде
csv
файла, то он будет сохранен в виде числа (т. Е. Количество дней по состоянию на 01-01-1900 на компьютере с Windows и 01-01-1904 на компьютере Mac). Вы можете попробовать:as.Date(gewane_t$Date, origin = "1900-01-01")
Ответ №1:
Используйте lubridate
dmy
функцию. Эта функция автоматически возвращает объекты класса POSIXct и будет работать либо с факторами, либо с символами.
Предполагая, что ваш фрейм данных называется gewane_t
обновлением кода dmy
до mdy
library(lubridate)
gewane_t$Date <- mdy(gewane_t$Date)
Выход:
Date Longitude Latitude Elevation Max Temperature Min Temperature_1 Precipitation Wind
<date> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
1 1979-01-01 40.6 10.1 594 31.8 14.7 0 1.34 0.333 23.7
2 1979-02-01 40.6 10.1 594 30.5 15.0 0 1.44 0.446 23.2
3 1979-03-01 40.6 10.1 594 30.0 18.7 0.0206 1.95 0.532 18.3
4 1979-04-01 40.6 10.1 594 31.3 17.8 0 2.15 0.466 23.1
Комментарии:
1. Этот результат пришел: gewane_t$Дата Форматы не найдены.
2. Хорошо, я проверю
3. Я проверил. Вы установили
lubridate
.install.packages("lubridate")
? Это имя вашегоgewane_t
фрейма данных, то оно должно работать. Пожалуйста, дайте мне знать.4. Это тот же самый результат. > setwd(«C:/Users/c/OneDrive/Desktop/Hydroclimatology/CFSR данные для гидроклиматологии/для Gewane») >> gewanet >><- read.csv(«weatherdata-101406.csv»,TRUE,»,») > класс(gewanet) [1] «data.frame» <- read.csv(«weatherdata-101406.csv»,TRUE,»,») >> библиотека(lubridate) Прикрепление пакета: ‘lubridate’ Следующие объекты маскируются из «пакета:база»: дата, пересечение, setdiff, объединение > gewanet$Дата > Форматы не найдены.
5. Это потому, что мой формат данных в мм/дд/гггг?