Stefano, My guess is that you don't need an if() statement at all. But it's hard to answer your question without knowing what sort of operations you want to do. I suggest giving a more complete example.
Also, you should always cc R-help on your correspondence, so that other readers can follow the thread and so that you can get the fastest answer possible. Jean On Tue, Apr 2, 2013 at 9:27 AM, Stefano Sofia < stefano.so...@regione.marche.it> wrote: > Thank you Jean, > your option to use read.table(file, na.strings="-999") is good for me. > > Let me ask you a final question: in another part of my code I have to > perform some calculations only if min_temp is not NA. The following code > does not work: > > if (df1$min_temp[df1$mydate==oggi]] != NA) > { > ... > } > > How can I set the if statement correctly? > > Thank you for your help > Stefano > > > ________________________________________ > Da: Adams, Jean [jvad...@usgs.gov] > Inviato: martedì 2 aprile 2013 15.19 > A: Stefano Sofia > Cc: r-help@r-project.org > Oggetto: Re: [R] Create a vector without using an external 'if statement' > > Stefano, > > How are you reading your data into R? If you are using a function like > read.table(), you may be able to inform R upon reading the data that -999 > represents a missing value using an option like na.strings, for example: > read.table(file, na.strings="-999") > > Otherwise, you can change the -999 to NA after creating the object > my_array using this: > my_array[my_array==-999] <- NA > > Jean > > > > > On Tue, Apr 2, 2013 at 7:40 AM, Stefano Sofia < > stefano.so...@regione.marche.it<mailto:stefano.so...@regione.marche.it>> > wrote: > Dear R-users, > suppose I have three dataframes like these > > df1: > mydate min_temp > 31032013 12 > 01042013 8 > 02042013 -999 > > df2: > mydate min_temp > 31032013 10 > 01042013 11 > 02042013 14 > > df3: > mydate min_temp > 31032013 4 > 01042013 3 > 02042013 5 > > where -999 means that the temperature data is not available (at the moment > I cannot change it to NA because I am not the db administrator); > suppose also that oggi is 02042013. > > I need to create an array of all min_temp, having NA where min_temp is > -999. > > my_array <- c(df1$min_temp[df1$mydate==oggi], > df2$min_temp[df2$mydate==oggi], df3$min_temp[df3$mydate==oggi]) > > creates > (-999,14,5) > while I need > (NA,14,5) > > Can I do it directly while I create my_array, without using an external if > statement? > > Thank you for your help > Stefano Sofia > > 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 dellart. 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<mailto:R-help@r-project.org> mailing list > 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 dellart. 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 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.