[R] variable (column) in a data frame
Paulo Barata
paulo.barata at ensp.fiocruz.br
Sun Jul 15 17:41:38 CEST 2012
Dr. Dalgaard,
Thank you. But pre-checking with is.null() or using with()
doesn't solve the problem of catching spelling mistakes
in the name of a variable inside a data frame, when using
the df$var notation often in a program.
Is there some way for R to behave, in relation to a variable
inside a data frame, the same way it behaves for a variable
not in a data frame? For example:
##----------------------------------------
a <- c(1,2,3)
## the variable exists, we get a correct answer
a==1
## the variable does not exist, R rightly points this out
aaa==1
##----------------------------------------
My point is, if we make a spelling mistake in a program when referring
to a variable inside a data frame, using the df$var notation,
there seems to be no way of getting warned about that.
Thank you once again.
Paulo Barata
---------------------------------------------------------------------
---------- Original Message -----------
From: peter dalgaard <pdalgd at gmail.com>
To: "Paulo Barata" <paulo.barata at ensp.fiocruz.br>
Sent: Sun, 15 Jul 2012 16:47:35 +0200
Subject: Re: [R] variable (column) in a data frame
> On Jul 15, 2012, at 16:30 , Paulo Barata wrote:
>
> >
> > To the R help list,
> >
> > When using a data frame, there is no warning or error message
> > when I refer to a non-existent variable inside the data frame.
> >
> > Example:
> >
> > ##----------------------------------------------
> >
> > a <- c(1,2,3)
> > b <- c(11,22,33)
> > df <- data.frame(a,b)
> > df
> >
> > ## correct: there is a column in df named 'a'
> > ## the sum is correctly performed
> > sum(df$a==2)
> >
> > ## incorrect: there is no column in df named 'aaa',
> > ## but the sum is performed anyway without either warning or error
> > sum(df$aaa==2)
> >
> > ##----------------------------------------------
> >
> > Is there some way to make R issue either a warning or an error
> > message in such a situation?
> >
>
> You can pre-check for is.null(df$aaa) or use with(df, sum(aaa==2)).
>
> --
> Peter Dalgaard, Professor,
> Center for Statistics, Copenhagen Business School
> Solbjerg Plads 3, 2000 Frederiksberg, Denmark
> Phone: (+45)38153501
> Email: pd.mes at cbs.dk Priv: PDalgd at gmail.com
>
> --
> This message has been scanned for viruses and
> dangerous content by MailScanner, and is
> believed to be clean.
------- End of Original Message -------
More information about the R-help
mailing list