Манипулирование датами в R
У меня есть данные об авиационных происшествиях (дата аварии и другая информация). Для моего проекта статистики я хочу проанализировать данные. Например, я хочу изобразить число несчастных случаев за трехмесячный период между 1995 и 2000 годами. То есть, каждые три последовательных месяца в этом периоде я хочу получить количество несчастных случаев за этот период времени. Как я могу наиболее эффективно получить количество аварий за эти три месяца в R, чтобы я мог дальше манипулировать данными?
Также я хочу проверить статистику, соответствуют ли мои данные распределению Пуассона. Могу ли я использовать тест добротности в R на моих данных?
До сих пор я написал это.
Моя идея состояла в том, чтобы создать вектор, значения которого будут отражать число аварий за период в три месяца в период между 1995 и 2000 гг. Данные отсортированы по дате, каждая строка в таблице представляет одну аварию самолета.
Crash<-read.csv(file="nesrece95-99.csv", header=TRUE, sep=",")
Datumi=as.Date(Crash$Date,"%m/%d/%Y")
help(vector)
broj<-vector(mode="integer", length = 20)
ind<-integer()
ind=-1
god<-integer()
god=0
mjesec<-integer()
mjesec=0
help(date)
for(i in 1:length(Datumi))
{
if(year(Datumi[i])!=god)
{
ind=ind+1
god=year(Datumi[i])
print(god)
mjesec=1
}
else if(month(Datumi[i]> (mjesec+2)) )
{
ind=ind+1
mjesec=month(Datumi[i])
}
broj[ind]=broj[ind]+1
}
Это дает мне ошибку:
Error in as.POSIXlt.default(x, tz = tz(x)) :
do not know how to convert 'x' to class “POSIXlt”
Но я не знаю, в чем именно проблема. Я буду изучать эти библиотеки более подробно позже. Я новичок в R, но я должен использовать его для своего проекта.
1 ответ
Поскольку у меня нет впечатлений от ваших данных, я просто могу догадаться, но, может быть, имеет смысл сгруппировать данные по 3-месячным периодам? dplyr
-Пакет (см. Шпаргалку здесь) предлагает функцию группировки, которая может позволить вам указать соответствующие три месяца и суммировать количество несчастных случаев.