Buenas.
A mi me sale para todos las filas, entiendo que si no es así no sirve de mucho.
A veces me da ese error que tu dices pero aún asi no pasa nada (o sea que me genera "fechas1).
He creado las variables DAT_INI_PER_CONSUM2 y DAT_FI_PER_CONSUM2
en formato fecha porque las otras me salian como factores.
Como ves en head(fechas3) y tail(fechas3) sale para todas las filas.
Confirmame que te sale o que no te sale
Saludos
fechas <- read.csv("~/fechas.txt", sep="")
> head (fechas)
num_obs DAT_INI_PER_CONSUM DAT_FI_PER_CONSUM VO_CONSUM_TOT dif.dates
1 1 11/05/2015 08/07/2015 -1280 58
2 2 11/05/2015 08/07/2015 1280 58
3 3 14/10/2015 14/12/2015 17 61
4 4 06/11/2015 08/01/2016 8 63
5 5 06/11/2015 08/01/2016 13 63
6 6 24/11/2015 25/01/2016 9 62
consumdiario
1 -22
2 22
3 0
4 0
5 0
6 0
> fechas$DAT_INI_PER_CONSUM2<-as.Date(fechas$DAT_INI_PER_CONSUM, format="%d/%m/%Y")
> fechas$DAT_FI_PER_CONSUM2<-as.Date(fechas$DAT_FI_PER_CONSUM, format="%d/%m/%Y")
> fechas1<-setDT(fechas)[,.(dias=seq(DAT_INI_PER_CONSUM2, DAT_FI_PER_CONSUM2, by='days')),
by=num_obs]
Error in .(dias = seq(DAT_INI_PER_CONSUM2, DAT_FI_PER_CONSUM2, by = "days")): could not find function "."
> head (fechas1)
num_obs dias
1: 1 2015-05-11
2: 1 2015-05-12
3: 1 2015-05-13
4: 1 2015-05-14
5: 1 2015-05-15
6: 1 2015-05-16
> tail(fechas1)
num_obs dias
1: 6 2016-01-20
2: 6 2016-01-21
3: 6 2016-01-22
4: 6 2016-01-23
5: 6 2016-01-24
6: 6 2016-01-25
> fechas2<-merge(fechas, fechas1); head (fechas2)
num_obs DAT_INI_PER_CONSUM DAT_FI_PER_CONSUM VO_CONSUM_TOT dif.dates
1: 1 11/05/2015 08/07/2015 -1280 58
2: 1 11/05/2015 08/07/2015 -1280 58
3: 1 11/05/2015 08/07/2015 -1280 58
4: 1 11/05/2015 08/07/2015 -1280 58
5: 1 11/05/2015 08/07/2015 -1280 58
6: 1 11/05/2015 08/07/2015 -1280 58
consumdiario DAT_INI_PER_CONSUM2 DAT_FI_PER_CONSUM2 dias
1: -22 2015-05-11 2015-07-08 2015-05-11
2: -22 2015-05-11 2015-07-08 2015-05-12
3: -22 2015-05-11 2015-07-08 2015-05-13
4: -22 2015-05-11 2015-07-08 2015-05-14
5: -22 2015-05-11 2015-07-08 2015-05-15
6: -22 2015-05-11 2015-07-08 2015-05-16
> fechas3<-fechas2%>%
+ mutate(
+ MES=month(dias))%>%
+ group_by(num_obs, MES)%>%
+ mutate(
+ DIAS_MES=n_distinct(dias))%>%
+ as.data.frame()
> head(fechas3)
num_obs DAT_INI_PER_CONSUM DAT_FI_PER_CONSUM VO_CONSUM_TOT dif.dates
1 1 11/05/2015 08/07/2015 -1280 58
2 1 11/05/2015 08/07/2015 -1280 58
3 1 11/05/2015 08/07/2015 -1280 58
4 1 11/05/2015 08/07/2015 -1280 58
5 1 11/05/2015 08/07/2015 -1280 58
6 1 11/05/2015 08/07/2015 -1280 58
consumdiario DAT_INI_PER_CONSUM2 DAT_FI_PER_CONSUM2 dias MES
1 -22 2015-05-11 2015-07-08 2015-05-11 5
2 -22 2015-05-11 2015-07-08 2015-05-12 5
3 -22 2015-05-11 2015-07-08 2015-05-13 5
4 -22 2015-05-11 2015-07-08 2015-05-14 5
5 -22 2015-05-11 2015-07-08 2015-05-15 5
6 -22 2015-05-11 2015-07-08 2015-05-16 5
DIAS_MES
1 21
2 21
3 21
4 21
5 21
6 21
> tail (fechas3)
num_obs DAT_INI_PER_CONSUM DAT_FI_PER_CONSUM VO_CONSUM_TOT dif.dates
366 6 24/11/2015 25/01/2016 9 62
367 6 24/11/2015 25/01/2016 9 62
368 6 24/11/2015 25/01/2016 9 62
369 6 24/11/2015 25/01/2016 9 62
370 6 24/11/2015 25/01/2016 9 62
371 6 24/11/2015 25/01/2016 9 62
consumdiario DAT_INI_PER_CONSUM2 DAT_FI_PER_CONSUM2 dias MES
366 0 2015-11-24 2016-01-25 2016-01-20 1
367 0 2015-11-24 2016-01-25 2016-01-21 1
368 0 2015-11-24 2016-01-25 2016-01-22 1
369 0 2015-11-24 2016-01-25 2016-01-23 1
370 0 2015-11-24 2016-01-25 2016-01-24 1
371 0 2015-11-24 2016-01-25 2016-01-25 1
DIAS_MES
366 25
367 25
368 25
369 25
370 25
371 25