[R] Indexing by logical vectors
Christian Raschke
crasch2 at tigers.lsu.edu
Tue Jul 20 01:16:24 CEST 2010
Dear R-Listers,
My question concerns indexing vectors by logical vectors that are based
on the original vector. Consider the following simple example to
hopefully make clear what I mean:
a <- rnorm(10)
a[a<0] <- NA
However, I am now working with multiple data frames that I received,
where each of them has nicely descriptive, yet long names(). In my
scripts there are many instances where operations similar to the one
above are required. Again a simple example:
some.data.frame <- data.frame(some.long.variable.name=rnorm(10),
some.other.long.variable.name=rnorm(10))
some.data.frame$some.other.long.variable.name[some.data.frame$some.other.long.variable.name
< 0] <- NA
The fact that the names are so long makes things not very readable in
the script and hard to debug. Is there a way in R to refer to the "self"
of whatever is being indexed? I am looking for something like
some.data.frame$some.other.long.variable.name[.self < 0] <- NA
that would accomplish the same result as above. Or is there another
concise, but less messy way to do this? I prefer not attaching the
data.frames and partial matching makes things even more messy since many
names() are very similar. I know I could just rename everything, but I'd
like to learn if there is and easy or obvious way to do this in R that I
have missed so far.
I would appreciate any advice, and I apologize if this topic has been
discussed before.
> sessionInfo()
R version 2.11.0 (2010-04-22)
x86_64-redhat-linux-gnu
locale:
[1] LC_CTYPE=en_US.UTF-8 LC_NUMERIC=C
[3] LC_TIME=en_US.UTF-8 LC_COLLATE=en_US.UTF-8
[5] LC_MONETARY=C LC_MESSAGES=en_US.UTF-8
[7] LC_PAPER=en_US.UTF-8 LC_NAME=C
[9] LC_ADDRESS=C LC_TELEPHONE=C
[11] LC_MEASUREMENT=en_US.UTF-8 LC_IDENTIFICATION=C
attached base packages:
[1] stats graphics grDevices utils datasets methods base
--
Christian Raschke
Department of Economics
and
ISDS Research Lab (HSRG)
Louisiana State University
crasch2 at lsu.edu
More information about the R-help
mailing list