> On Apr 11, 2016, at 1:48 AM, Stefano Sofia <stefano.so...@regione.marche.it> 
> wrote:
> 
> Dear Jim and dear Enrico,
> thank you for your replies.
> Unfortunately your hints didn't solve my problem, and I am getting mad.
> Can I show you my whole process? I will be as quick as possible.
> I start from a data frame called Snow of the form
> 
> year month day hh mm hs
> 2007 11 19 0 0 0.00
> 2007 11 19 0 30 0.00
> 2007 11 19 1 0 0.00
> 2007 11 19 1 30 0.00
> 2007 11 19 2 0 0.00
> 2007 11 19 2 30 0.00
> 2007 11 19 3 0 0.00
> 2007 11 19 3 30 0.00
> 2007 11 19 4 0 0.00
> 2007 11 19 4 30 0.00
> ...
> 
> whth semi-hourly data.
> I need to deal with date so I used strptime:
> 
> Snow$data_factor <- as.factor(paste(Snow$year, Snow$month, Snow$day, Snow$hh, 
> Snow$mm, sep="-"))
> Snow$data_strptime <- strptime(Snow$data_factor, format = "%Y-%m-%d-%H-%M")
> 
> It gives me
> 
> year month day hh mm hs  data_factor  data_strptime
> 1     2007    11  19  0  0  0  2007-11-19-0-0 2007-11-19 00:00:00
> 2     2007    11  19  0 30  0  2007-11-19-0-30  2007-11-19 00:30:00
> 3     2007    11  19  1  0  0  2007-11-19-1-0  2007-11-19 01:00:00
> 4     2007    11  19  1 30  0  2007-11-19-1-30  2007-11-19 01:30:00
> 5     2007    11  19  2  0  0  2007-11-19-2-0  2007-11-19 02:00:00
> 6     2007    11  19  2 30  0  2007-11-19-2-30  2007-11-19 02:30:00
> 7     2007    11  19  3  0  0  2007-11-19-3-0  2007-11-19 03:00:00
> 8     2007    11  19  3 30  0  2007-11-19-3-30  2007-11-19 03:30:00
> 9     2007    11  19  4  0  0  2007-11-19-4-0  2007-11-19 04:00:00
> 10   2007    11  19  4 30  0  2007-11-19-4-30  2007-11-19 04:30:00
> ...
> 
> The type of the column data_strptime is
> $data_strptime
> [1] "POSIXlt" "POSIXt"
> 
> Because of some days (or part of them) might be missing, given a time 
> interval I want to create a new data frame with all time-steps and then merge 
> the new data frame with the old one.
> In order to create a new data frame with all time-steps, I thought to use
> 
> df_new <- data.frame(data_strptime=seq(init_day, fin_day, by="30 mins"))
> 
> and then
> 
> Snow_all <- merge(df_new, Snow, by=("data_strptime"), all.x=TRUE)
> 
> My problem is in dealing with  and , respectively for example "200711190000" 
> and "200711210000".
> I am not able to create a sequence of class "POSIXlt" "POSIXt", in order to 
> merge the two data frames.



First you asked about character values with dashes in them and now you want no 
dashes. Make up our mind:


init_day="200711190000" 
 fin_day="200711210000".
df_new <- data.frame(data_strptime=seq(as.POSIXct(init_day, %Y%M%D%H%M"), 
                                       as.POSIXct(fin_day, %Y%M%D%H%M"), by="30 
mins"))

Do NOT use POSIXlt for dataframe columns.

-- 
David.


> 
> Could you please help me in this?
> Thank you again for your attention
> Stefano
> 
> 
> ________________________________________
> Da: Jim Lemon [drjimle...@gmail.com]
> Inviato: lunedì 11 aprile 2016 9.47
> A: Stefano Sofia
> Cc: r-help@r-project.org
> Oggetto: Re: [R] Query about use of format in strptime
> 
> Hi Stefano,
> As the help page says:
> 
> "The default for the format methods is "%Y-%m-%d %H:%M:%S" if any
> element has a time component which is not midnight, and "%Y-%m-%d"
> otherwise. This is because when the result is printed, it uses the
> default format. If you want a specified output representation:
> 
> format(strptime(init_day, format="%Y-%m-%d-%H-%M"),"%Y-%M-%d %H:%M")
> [1] "2015-30-24 00:30"
> 
> For the "midnight" case:
> 
> format(strptime(init_day, format="%Y-%m-%d-%H-%M"),"%Y-%m-%d %H:%M")
> [1] "2015-02-24 00:00"
> 
> Jim
> 
> 
> On Mon, Apr 11, 2016 at 5:22 PM, Stefano Sofia
> <stefano.so...@regione.marche.it> wrote:
>> Dear R-list users,
>> I need to use strptime because I have to deal with date with hours and 
>> minutes.
>> I read the manual for strptime and I also looked at many examples, but when 
>> I try to apply it to my code, I always encounter some problems.
>> I try to change the default format, with no success. Why? How can I change 
>> the format?
>> 
>> 1.
>> init_day <- as.factor("2015-02-24-00-30")
>> strptime(init_day, format="%Y-%m-%d-%H-%M")
>> [1] "2015-02-24 00:30:00"
>> It works, but why also seconds are shown if in format seconds are not 
>> specified?
>> 
>> 2.
>> init_day <- as.factor("2015-02-24-0-00")
>> strptime(init_day, format="%Y-%m-%d-%H-%M")
>> [1] "2015-02-24"
>> Again, the specified format is not applied. Why?
>> 
>> Thank you for your attention and your help
>> Stefano
>> 
>> 
>> ________________________________
>> 
>> AVVISO IMPORTANTE: Questo messaggio di posta elettronica può contenere 
>> informazioni confidenziali, pertanto è destinato solo a persone autorizzate 
>> alla ricezione. I messaggi di posta elettronica per i client di Regione 
>> Marche possono contenere informazioni confidenziali e con privilegi legali. 
>> Se non si è il destinatario specificato, non leggere, copiare, inoltrare o 
>> archiviare questo messaggio. Se si è ricevuto questo messaggio per errore, 
>> inoltrarlo al mittente ed eliminarlo completamente dal sistema del proprio 
>> computer. Ai sensi dell’art. 6 della DGR n. 1394/2008 si segnala che, in 
>> caso di necessità ed urgenza, la risposta al presente messaggio di posta 
>> elettronica può essere visionata da persone estranee al destinatario.
>> IMPORTANT NOTICE: This e-mail message is intended to be received only by 
>> persons entitled to receive the confidential information it may contain. 
>> E-mail messages to clients of Regione Marche may contain information that is 
>> confidential and legally privileged. Please do not read, copy, forward, or 
>> store this message unless you are an intended recipient of it. If you have 
>> received this message in error, please forward it to the sender and delete 
>> it completely from your computer system.
>> 
>>        [[alternative HTML version deleted]]
>> 
>> ______________________________________________
>> R-help@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.
> 
> ________________________________
> 
> AVVISO IMPORTANTE: Questo messaggio di posta elettronica può contenere 
> informazioni confidenziali, pertanto è destinato solo a persone autorizzate 
> alla ricezione. I messaggi di posta elettronica per i client di Regione 
> Marche possono contenere informazioni confidenziali e con privilegi legali. 
> Se non si è il destinatario specificato, non leggere, copiare, inoltrare o 
> archiviare questo messaggio. Se si è ricevuto questo messaggio per errore, 
> inoltrarlo al mittente ed eliminarlo completamente dal sistema del proprio 
> computer. Ai sensi dell’art. 6 della DGR n. 1394/2008 si segnala che, in caso 
> di necessità ed urgenza, la risposta al presente messaggio di posta 
> elettronica può essere visionata da persone estranee al destinatario.
> IMPORTANT NOTICE: This e-mail message is intended to be received only by 
> persons entitled to receive the confidential information it may contain. 
> E-mail messages to clients of Regione Marche may contain information that is 
> confidential and legally privileged. Please do not read, copy, forward, or 
> store this message unless you are an intended recipient of it. If you have 
> received this message in error, please forward it to the sender and delete it 
> completely from your computer system.
> 
> ______________________________________________
> R-help@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.

David Winsemius
Alameda, CA, USA

______________________________________________
R-help@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.

Reply via email to