[R] if/else help
David Winsemius
dwinsemius at comcast.net
Wed Sep 21 18:06:41 CEST 2016
> On Sep 21, 2016, at 8:26 AM, MacQueen, Don <macqueen1 at llnl.gov> wrote:
>
> Hopefully this is not a homework question.
>
> The other responses are fine, but I would suggest the simplest way to do
> exactly what you ask is
>
>
> if (!exists('r4')) r4 <- data.frame(a=0, b=0, c=0, d='x')
>
>
> The exists() function requires a character string for its first argument,
> i.e., the name of the object, not the object itself (check the help page
> for exists).
Since the implicit goal is to determine whether a data.frame by that name is in the search path one could add the requirement that the 'list'-mode be added as a requirement in the search:
if ( !exists('r4', mode='list') ){ r4 <- data.frame(a=0, b=0, c=0, d='x')}
That would avoid a 'false'-detection (or at least an unintended detection) for a function by that name if one `exist`-ed. It would also mask any `r4` that might have been a matrix or other atomic vector outside the local evaluation frame.
--
David.
>
> Using "get" to get it doesn't make sense if it already exists.
>
> -Don
>
> --
> Don MacQueen
>
> Lawrence Livermore National Laboratory
> 7000 East Ave., L-627
> Livermore, CA 94550
> 925-423-1062
>
>
>
>
>
> On 9/20/16, 12:31 PM, "R-help on behalf of Crombie, Burnette N"
> <r-help-bounces at r-project.org on behalf of bcrombie at utk.edu> wrote:
>
>> If a data.frame (r4) does not exist in my R environment, I would like to
>> create it before I move on to the next step in my script. How do I make
>> that happen? Here is what I want to do from a code perspective:
>>
>> if (exists(r4))
>> {
>> is.data.frame(get(r4))
>> }
>> else
>> {
>> a <- 0, b <- 0, c <- 0, d <- "x", r4 <- data.frame(cbind(a,b,c,d))
>> }
>>
>> Thanks for your help,
>> B
>>
>> [[alternative HTML version deleted]]
>>
>> ______________________________________________
>> 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.
>
> ______________________________________________
> 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.
David Winsemius
Alameda, CA, USA
More information about the R-help
mailing list