Расчет дней в месяц между интервалом двух дат -- r поле с участием date поле с участием intervals пол Связанный проблема

Calculating days per month between interval of two dates


5
vote

проблема

русский

У меня есть набор событий, которые каждый из которых имеет начало и окончание, но они проходят по объему ряда месяцев. Я хотел бы создать таблицу, которая показывает количество дней в каждом месяце для этого события.

У меня есть следующий пример.

 <код> event_start_date <- as.Date("23/10/2012", "%d/%m/%Y") event_end_date   <- as.Date("07/02/2013", "%d/%m/%Y")   

Я ожидал получить таблицу, как следующее:

 <код> Oct-12  8 Nov-12  30 Dec-12  31 Jan-13  31 Feb-13  7   

Никто знает о умном и элегантном способе выполнения этого или создает систему циклов единственным жизнеспособным методом?

jochem

Английский оригинал

I have a set of events that each have a start and end date, but they take place over the scope of a number of months. I would like to create a table that shows the number of days in each month for this event.

I have the following example.

event_start_date <- as.Date("23/10/2012", "%d/%m/%Y") event_end_date   <- as.Date("07/02/2013", "%d/%m/%Y") 

I would expect to get a table out as the following:

Oct-12  8 Nov-12  30 Dec-12  31 Jan-13  31 Feb-13  7 

Does anybody know about a smart and elegant way of doing this or is creating a system of loops the only viable method?

Jochem

</div
        
 
 

Список ответов

7
 
vote
vote
Лучший ответ
 

Это не обязательно эффективно, потому что он создает последовательность дней, но это делает работу:

 <код> > library(zoo) > table(as.yearmon(seq(event_start_date, event_end_date, "day")))  Oct 2012 Nov 2012 Dec 2012 Jan 2013 Feb 2013         9       30       31       31        7   

Если ваш промежуток времени настолько велик, чем этот метод, вам придется создать последовательность первых месяцев между вашими двумя (усеченными) датами, возьмите <код> diff и сделать небольшая дополнительная работа для конечных точек.

 

This is not necessarily efficient because it creates a sequence of days, but it does the job:

> library(zoo) > table(as.yearmon(seq(event_start_date, event_end_date, "day")))  Oct 2012 Nov 2012 Dec 2012 Jan 2013 Feb 2013         9       30       31       31        7 

If your time span is so large than this method is slow, you'll have to create a sequence of firsts of the months between your two (truncated) dates, take the diff, and do a little extra work for the end points.

</div
 
 
1
 
vote

Как djsol уже указал на своем комментарии, вы можете просто вычесть два дата, чтобы получить количество дней:

 <код> event_start_date <- as.Date("23/10/2012", "%d/%m/%Y") event_end_date   <- as.Date("07/02/2013", "%d/%m/%Y") as.numeric(event_end_date - event_start_date)   

Это то, что вы хотите? У меня есть ощущение, что у вас может быть больше проблем, чтобы получить дату начала и окончания в таком формате, чтобы вы могли легко вычесть их, потому что вы упоминаете цикл. Если это так, однако, я думаю, нам нужно больше деталей о том, как выглядит ваши фактические данные.

 

As DjSol already pointed out in his comment, you can just subtract two dates to get the number of days:

event_start_date <- as.Date("23/10/2012", "%d/%m/%Y") event_end_date   <- as.Date("07/02/2013", "%d/%m/%Y") as.numeric(event_end_date - event_start_date) 

Is that what you want? I have the feeling that you might have more of a problem to get the start and end date in such a format so you can easily subtract them because you mention a loop. If so, however, I guess we need more details on how your actual data looks.

</div
 
 
   
   

Связанный проблема

1  Как прочитать файлы суффикса .avl в r?  ( How to read avl suffix files into r ) 
Я загрузил глобальные водно-болотные угодья и озерные данные из этой ссылки: https://www.worldwildlife.org/pages/globalakes- и-водно-болотный угодья база дан...

0  Трудно заполнить NAS с вмененными ценностями петлей, но не один за другим  ( Difficultly filling nas with imputed values by loop but not one by one ) 
Так что у меня есть матрица в R, это подмножество данных DataFrame, удерживающееся немного больше, чем идентификатор, группируя переменную и серии 1100 показа...

8  Использование геоконининов в качестве координат вершин в Igraph R-пакет  ( Using geo coordinates as vertex coordinates in the igraph r package ) 
в пакете igraph для R, я борюсь, чтобы построить социальную сеть, используя координаты широты / долготы в качестве макета графика. Представьте себе этот про...

12  Частные члены в R Справочник класса R  ( Private members in r reference class ) 
Можно ли иметь частные поля элементов внутри класса R r. Играя с некоторыми из онлайн-примеров у меня есть: <код> > Account <- setRefClass( "ref_Account"...

0  Ошибка при использовании списков  ( Error when using lists ) 
У меня есть файл .rdata со списком внутри. Однако я получаю сообщение об ошибке при попытке отобразить список. <код> ls(data$Test$t0) Error in list2env(lis...

2  dlyryr "не обещание" ошибка  ( Dplyr not a promise error ) 
У меня есть набор набора панели, для которого я создал отсталые переменные с помощью функции LAG (). Когда я пытаюсь рассчитать дельта для каждого TimePoint, ...

1  Ошибка при использовании функции nnetar из пакета прогноза  ( Error when using nnetar function from forecast package ) 
У меня есть следующие данные: <код> kafka4 ................. Когда я выполняю функцию Nnetar, я получаю следующую ошибку: <код> kafka5 Я попробова...

7  Ось X не соответствует барплоту  ( X axis does not match barplot ) 
Я использовал функцию barplot () для создания сложенного диаграммы из матрицы. Матрица выглядит так: <код> 1 0.989013 0.010987 2 0.999990 0.000010 3 0.999...

0  Коэффициент переменных членства в R  ( Coefficient variable membership in r ) 
Я разработал ужасно длительное решение для этого перед использованием регулярных выражений, но я надеюсь, что есть более родственный способ сделать это. Учи...

2  Как изменить график разброса GGPlot2  ( How to modify ggplot2 scatter plot ) 
Вот мой набор данных: <код> df1 = data.frame(Count.amp = c(8,8,1,2,2,5,8), Count.amp.1 = c(4,4,2,3,2,5,4)) Я попробовал <код> library(ggplot2) qplot(C...

1  Есть ли не-Java внедрение регрессионной модели M5P библиотеки RWEKA?  ( Is there a non java implementation of the m5p regression model of the rweka libr ) 
Я ищу функцию, которая создает модель регрессии M5P, как <код> M5P функция <код> RWeka библиотеки (как <код> M5P функция на основе кода Java, который имеет...

0  Извлечение данных из нижних слоев в растробрике  ( Extracting data from lower layers in a rasterbrick ) 
Итак, я извлекаю данные из растробрика, который я сделал, используя метод из этого вопроса: Как извлечь данные из растробрика? В дополнение к получению да...

6  403 Ошибка при использовании Rvest для входа в веб-сайт для соскабливания  ( 403 error when using rvest to log into website for scraping ) 
Я пытаюсь высказать страницу на веб-сайте, который требует входа в систему и в целом получение ошибки 403. Я изменил код из этих 2 сообщений для моего сайта...

3  R: Обновить график [XY] Lims с новыми пунктами () или линий () дополнениями?  ( R update plot xylims with new points or lines additions ) 
Фон: Я запускаю симуляцию Монте-Карло, чтобы показать, что конкретный процесс (совокупное среднее) делает не сходится со временем, и часто отклоняется ...

0  R Язык: Как работать с динамически размером вектора?  ( R language how to work with dynamically sized vector ) 
Я изучаю программирование R, и пытаясь понять лучший подход к работе с вектором, когда вы не знаете, последний размер, он в конечном итоге будет. Например, в ...

Связанный проблема

1  Как прочитать файлы суффикса .avl в r? 
0  Трудно заполнить NAS с вмененными ценностями петлей, но не один за другим 
8  Использование геоконининов в качестве координат вершин в Igraph R-пакет 
12  Частные члены в R Справочник класса R 
0  Ошибка при использовании списков 
2  dlyryr "не обещание" ошибка 
1  Ошибка при использовании функции nnetar из пакета прогноза 
7  Ось X не соответствует барплоту 
0  Коэффициент переменных членства в R 
2  Как изменить график разброса GGPlot2 
1  Есть ли не-Java внедрение регрессионной модели M5P библиотеки RWEKA? 
0  Извлечение данных из нижних слоев в растробрике 
6  403 Ошибка при использовании Rvest для входа в веб-сайт для соскабливания 
3  R: Обновить график [XY] Lims с новыми пунктами () или линий () дополнениями? 
0  R Язык: Как работать с динамически размером вектора?