Buenas a todos,
Lo primero agradecer todas las respuesta sque tuve en el tema de Bootstrap
dataframe, que por estar de baja no he podido agradecer.
De aquel tema salió una sugerencia que me parece muy interesante y que a dia de
hoy no soy capaz de hacer de una manera optima.
Lo que quiero hacer es coger un dia al azar de todo el periodo, y a partuir de
ese dia, coger por ejemplo los 20 dias siguientes.
Recuerdo que para cogerlos al azar hacia lo siguiente:
set.seed(121)
final<-0
nuevo<-0
for(i in 1:100000){
nuevo<-sample(datos$pedidos,replace=T)
final[i]<-sum(nuevo[1:20])
}
donde aqui estoy cogiendo los 20 dias al azar.
¿Como haria para coger estos 20 dias seguidos??
Gracias
Jesús
[[alternative HTML version deleted]]
Hola.
No sé si buscas algo parecido a esto
datos <- data.frame(v1 = rnorm(1000, 2, 5), v2 = rnorm(1000) )
# numero de puntos aleatorios
n.puntos <- 20
puntos <- replicate(n.puntos, sample(nrow(datos), 1, replace = T) )
puntos
[1] 348 52 520 675 574 303 264 678 749 29 310 691 460 114 892 903
335 984 207 964
# muestras de 21 filas
k <- 20
muestras <- lapply(puntos, function(x) datos[x:(x+k),])
# muestras es una lista con k data.frames, el primero serán los datos de
la fila 348 hasta la368
muestras[[1]]
v1 v2
348 -1.8855298 1.67022010
349 8.3539108 -0.75856401
350 3.1723330 -0.15722935
351 2.5871373 1.30962887
352 4.0801806 -0.22205638
353 8.7792425 1.92769400
354 1.8023941 0.60780632
355 -4.4542464 -0.30940621
356 1.4032584 -1.22315174
357 -1.1669957 -0.36789523
358 0.8834993 -0.51625882
359 -4.4173234 0.35013974
360 -6.2964411 0.64394556
361 0.4808418 1.41868648
362 0.6912628 -0.29357748
363 -4.1933794 0.90492395
364 -9.3685116 0.08371681
365 1.3305264 -0.18474498
366 2.9247997 1.24475278
367 8.8120307 0.48149808
368 8.0995250 1.30719019
El 31/03/16 a las 10:46, Jesús Para Fernández escribió:> Buenas a todos,
>
> Lo primero agradecer todas las respuesta sque tuve en el tema de Bootstrap
dataframe, que por estar de baja no he podido agradecer.
>
> De aquel tema sali? una sugerencia que me parece muy interesante y que a
dia de hoy no soy capaz de hacer de una manera optima.
>
> Lo que quiero hacer es coger un dia al azar de todo el periodo, y a partuir
de ese dia, coger por ejemplo los 20 dias siguientes.
>
> Recuerdo que para cogerlos al azar hacia lo siguiente:
>
> set.seed(121)
> final<-0
> nuevo<-0
> for(i in 1:100000){
> nuevo<-sample(datos$pedidos,replace=T)
> final[i]<-sum(nuevo[1:20])
> }
>
> donde aqui estoy cogiendo los 20 dias al azar.
>
> ?Como haria para coger estos 20 dias seguidos??
>
> Gracias
> Jes?s
>
>
>
>
> [[alternative HTML version deleted]]
>
>
>
> _______________________________________________
> R-help-es mailing list
> R-help-es en r-project.org
> https://stat.ethz.ch/mailman/listinfo/r-help-es
[[alternative HTML version deleted]]
Es justo lo que buscaba. Muchas gracias. Una unica cosa, como puedo pasar a un data.frame el resultado muestras, del lapply???> To: r-help-es en r-project.org > From: canadasreche en gmail.com > Date: Thu, 31 Mar 2016 15:18:55 +0200 > Subject: Re: [R-es] Bootstrap de días seguidos > > Hola. > > No sé si buscas algo parecido a esto > > datos <- data.frame(v1 = rnorm(1000, 2, 5), v2 = rnorm(1000) ) > > # numero de puntos aleatorios > n.puntos <- 20 > puntos <- replicate(n.puntos, sample(nrow(datos), 1, replace = T) ) > > puntos > [1] 348 52 520 675 574 303 264 678 749 29 310 691 460 114 892 903 > 335 984 207 964 > > # muestras de 21 filas > k <- 20 > muestras <- lapply(puntos, function(x) datos[x:(x+k),]) > > # muestras es una lista con k data.frames, el primero serán los datos de > la fila 348 hasta la368 > muestras[[1]] > v1 v2 > 348 -1.8855298 1.67022010 > 349 8.3539108 -0.75856401 > 350 3.1723330 -0.15722935 > 351 2.5871373 1.30962887 > 352 4.0801806 -0.22205638 > 353 8.7792425 1.92769400 > 354 1.8023941 0.60780632 > 355 -4.4542464 -0.30940621 > 356 1.4032584 -1.22315174 > 357 -1.1669957 -0.36789523 > 358 0.8834993 -0.51625882 > 359 -4.4173234 0.35013974 > 360 -6.2964411 0.64394556 > 361 0.4808418 1.41868648 > 362 0.6912628 -0.29357748 > 363 -4.1933794 0.90492395 > 364 -9.3685116 0.08371681 > 365 1.3305264 -0.18474498 > 366 2.9247997 1.24475278 > 367 8.8120307 0.48149808 > 368 8.0995250 1.30719019 > > El 31/03/16 a las 10:46, Jesús Para Fernández escribió: > > Buenas a todos, > > > > Lo primero agradecer todas las respuesta sque tuve en el tema de Bootstrap dataframe, que por estar de baja no he podido agradecer. > > > > De aquel tema sali? una sugerencia que me parece muy interesante y que a dia de hoy no soy capaz de hacer de una manera optima. > > > > Lo que quiero hacer es coger un dia al azar de todo el periodo, y a partuir de ese dia, coger por ejemplo los 20 dias siguientes. > > > > Recuerdo que para cogerlos al azar hacia lo siguiente: > > > > set.seed(121) > > final<-0 > > nuevo<-0 > > for(i in 1:100000){ > > nuevo<-sample(datos$pedidos,replace=T) > > final[i]<-sum(nuevo[1:20]) > > } > > > > donde aqui estoy cogiendo los 20 dias al azar. > > > > ?Como haria para coger estos 20 dias seguidos?? > > > > Gracias > > Jes?s > > > > > > > > > > [[alternative HTML version deleted]] > > > > > > > > _______________________________________________ > > R-help-es mailing list > > R-help-es en r-project.org > > https://stat.ethz.ch/mailman/listinfo/r-help-es > > > [[alternative HTML version deleted]] > > _______________________________________________ > R-help-es mailing list > R-help-es en r-project.org > https://stat.ethz.ch/mailman/listinfo/r-help-es[[alternative HTML version deleted]]
Hola, Yo lo que he entendido es que quieres generar los 20 días siguientes a una fecha dada. Una forma de hacerlo es así:> as.Date("2000-01-01") + 0:10[1] "2000-01-01" "2000-01-02" "2000-01-03" "2000-01-04" "2000-01-05" "2000-01-06" [7] "2000-01-07" "2000-01-08" "2000-01-09" "2000-01-10" "2000-01-11" Más detalles aquí: http://stackoverflow.com/questions/7536306/creating-a-unique-sequence-of-dates Saludos, Carlos Ortega www.qualityexcellence.es El 31 de marzo de 2016, 10:46, Jesús Para Fernández < j.para.fernandez en hotmail.com> escribió:> Buenas a todos, > > Lo primero agradecer todas las respuesta sque tuve en el tema de Bootstrap > dataframe, que por estar de baja no he podido agradecer. > > De aquel tema salió una sugerencia que me parece muy interesante y que a > dia de hoy no soy capaz de hacer de una manera optima. > > Lo que quiero hacer es coger un dia al azar de todo el periodo, y a > partuir de ese dia, coger por ejemplo los 20 dias siguientes. > > Recuerdo que para cogerlos al azar hacia lo siguiente: > > set.seed(121) > final<-0 > nuevo<-0 > for(i in 1:100000){ > nuevo<-sample(datos$pedidos,replace=T) > final[i]<-sum(nuevo[1:20]) > } > > donde aqui estoy cogiendo los 20 dias al azar. > > ¿Como haria para coger estos 20 dias seguidos?? > > Gracias > Jesús > > > > > [[alternative HTML version deleted]] > > > _______________________________________________ > R-help-es mailing list > R-help-es en r-project.org > https://stat.ethz.ch/mailman/listinfo/r-help-es >-- Saludos, Carlos Ortega www.qualityexcellence.es [[alternative HTML version deleted]]