Dagmar Cimiotti
2018-Dec-08 00:18 UTC
[R] sample (randomly select) to get a number of successive days
Hi Jim and everyone else, Mhm, no this is not what I am looking for. I think in your way I would randomly sample two values of day 1 and of day 2. But I want the opposite: I want to randomly draw two successive (!) days and put those values in a new dataframe to continue working with them. In my real data I do have a huge time span and I want to draw 25 consecutive days. So maybe my example was a little misleading. And now that I read it again my text was, too. Sorry about that! Good try though and I am very gratefull for your good will to help me ?? Would anyone give another try? Dagmar Am 07.12.2018 um 10:30 schrieb Jim Lemon:> Hi Dagmar, > This will probably involve creating a variable to differentiate the > two days in each data.frame: > > myframe$day<-as.Date(as.character(myframe$Timestamp),"%d.%m.%Y %H:%M:%S") > days<-unique(myframe$day) > > Then just sample the two subsets and concatenate them: > > myframe[c(sample(which(myframe$day==days[1]),2), > ? sample(which(myframe$day==days[2]),2)),] > > Jim > > > On Fri, Dec 7, 2018 at 8:08 PM Dagmar Cimiotti > <dagmar.cimiotti at ftz-west.uni-kiel.de> wrote: >> Dear all, >> >> I have data from a time span like this: >> >> myframe <- data.frame (Timestamp=c("24.09.2012 09:00:00", "24.09.2012 >> 10:00:00","25.09.2012 09:00:00", >> ???????????????????????????????????? "25.09.2012 >> 09:00:00","24.09.2012 09:00:00", "24.09.2012 10:00:00"), >> ????????????????????????? Event=c(50,60,30,40,42,54) ) >> myframe >> >> >> I want to create a new dataframe which includes in this example the >> data from two successive days (in my real data I have a big time span >> and want data from 25 consecutive days). I understand that I can do a >> simple sample like this >> >> mysample <- myframe[sample(1:nrow(myframe), 4,replace=FALSE),] >> mysample >> >> But I need the data from consecutive days in my random sample. Can >> anyone help me with this? >> >> >> Many thanks in advance, >> Dagmar >> >> ______________________________________________ >> R-help at r-project.org mailing list -- To UNSUBSCRIBE and more, see >> https://stat.ethz.ch/mailman/listinfo/r-help >> PLEASE do read the posting guide >> http://www.R-project.org/posting-guide.html >> and provide commented, minimal, self-contained, reproducible code.[[alternative HTML version deleted]]
Marc Schwartz
2018-Dec-08 01:26 UTC
[R] sample (randomly select) to get a number of successive days
Hi, I am confused. As far as I can tell, only the first day is selected randomly from your dataset. The subsequent 24 days are deterministic, since they need to be consecutive days from the first day, for a total of 25 consecutive days. Thus, all you need to do is to randomly select 1 day from within the time range of your dataset to be the first day, that is also far enough from the maximum date, to allow you to then select the data from the additional 24 consecutive days. So randomly pick your first day and set a range of values, covering the 25 days, to use to then subset your full dataset. What am I missing? Regards, Marc Schwartz> On Dec 7, 2018, at 7:18 PM, Dagmar Cimiotti <dagmar.cimiotti at ftz-west.uni-kiel.de> wrote: > > Hi Jim and everyone else, > > Mhm, no this is not what I am looking for. I think in your way I would > randomly sample two values of day 1 and of day 2. But I want the > opposite: I want to randomly draw two successive (!) days and put those > values in a new dataframe to continue working with them. > > In my real data I do have a huge time span and I want to draw 25 > consecutive days. So maybe my example was a little misleading. And now > that I read it again my text was, too. Sorry about that! > > Good try though and I am very gratefull for your good will to help me > Would anyone give another try? > > Dagmar > > Am 07.12.2018 um 10:30 schrieb Jim Lemon: >> Hi Dagmar, >> This will probably involve creating a variable to differentiate the >> two days in each data.frame: >> >> myframe$day<-as.Date(as.character(myframe$Timestamp),"%d.%m.%Y %H:%M:%S") >> days<-unique(myframe$day) >> >> Then just sample the two subsets and concatenate them: >> >> myframe[c(sample(which(myframe$day==days[1]),2), >> sample(which(myframe$day==days[2]),2)),] >> >> Jim >> >> >> On Fri, Dec 7, 2018 at 8:08 PM Dagmar Cimiotti >> <dagmar.cimiotti at ftz-west.uni-kiel.de> wrote: >>> Dear all, >>> >>> I have data from a time span like this: >>> >>> myframe <- data.frame (Timestamp=c("24.09.2012 09:00:00", "24.09.2012 >>> 10:00:00","25.09.2012 09:00:00", >>> "25.09.2012 >>> 09:00:00","24.09.2012 09:00:00", "24.09.2012 10:00:00"), >>> Event=c(50,60,30,40,42,54) ) >>> myframe >>> >>> >>> I want to create a new dataframe which includes in this example the >>> data from two successive days (in my real data I have a big time span >>> and want data from 25 consecutive days). I understand that I can do a >>> simple sample like this >>> >>> mysample <- myframe[sample(1:nrow(myframe), 4,replace=FALSE),] >>> mysample >>> >>> But I need the data from consecutive days in my random sample. Can >>> anyone help me with this? >>> >>> >>> Many thanks in advance, >>> Dagmar