Richard M. Heiberger
2022-Feb-07 23:05 UTC
[R] [External] Convert a character string to variable names
> x <- c("mtcars$disp", "mtcars$hp", "mtcars$cyl") > x[1] "mtcars$disp" "mtcars$hp" "mtcars$cyl"> eval(parse(text=x))[1] 6 6 4 6 8 6 8 4 4 6 6 8 8 8 8 8 8 4 4 4 4 8 8 8 8 4 4 4 8 6 8 4> for (i in x) print(eval(parse(text=i)))[1] 160.0 160.0 108.0 258.0 360.0 225.0 360.0 146.7 140.8 167.6 167.6 275.8 275.8 275.8 472.0 460.0 440.0 78.7 75.7 71.1 120.1 318.0 [23] 304.0 350.0 400.0 79.0 120.3 95.1 351.0 145.0 301.0 121.0 [1] 110 110 93 110 175 105 245 62 95 123 123 180 180 180 205 215 230 66 52 65 97 150 150 245 175 66 91 113 264 175 335 109 [1] 6 6 4 6 8 6 8 4 4 6 6 8 8 8 8 8 8 4 4 4 4 8 8 8 8 4 4 4 8 6 8 4> On Feb 07, 2022, at 17:55, Erin Hodgess <erinm.hodgess at gmail.com> wrote: > >> .x > > [1] "mtcars$disp" "mtcars$hp" "mtcars$cyl"
Erin Hodgess
2022-Feb-07 23:08 UTC
[R] [External] Convert a character string to variable names
Awesome, thank you so much! Sincerely, Erin Erin Hodgess, PhD mailto: erinm.hodgess at gmail.com On Mon, Feb 7, 2022 at 4:05 PM Richard M. Heiberger <rmh at temple.edu> wrote:> > x <- c("mtcars$disp", "mtcars$hp", "mtcars$cyl") > > x > [1] "mtcars$disp" "mtcars$hp" "mtcars$cyl" > > eval(parse(text=x)) > [1] 6 6 4 6 8 6 8 4 4 6 6 8 8 8 8 8 8 4 4 4 4 8 8 8 8 4 4 4 8 6 8 4 > > for (i in x) print(eval(parse(text=i))) > [1] 160.0 160.0 108.0 258.0 360.0 225.0 360.0 146.7 140.8 167.6 167.6 > 275.8 275.8 275.8 472.0 460.0 440.0 78.7 75.7 71.1 120.1 318.0 > [23] 304.0 350.0 400.0 79.0 120.3 95.1 351.0 145.0 301.0 121.0 > [1] 110 110 93 110 175 105 245 62 95 123 123 180 180 180 205 215 230 > 66 52 65 97 150 150 245 175 66 91 113 264 175 335 109 > [1] 6 6 4 6 8 6 8 4 4 6 6 8 8 8 8 8 8 4 4 4 4 8 8 8 8 4 4 4 8 6 8 4 > > > > On Feb 07, 2022, at 17:55, Erin Hodgess <erinm.hodgess at gmail.com> wrote: > > > >> .x > > > > [1] "mtcars$disp" "mtcars$hp" "mtcars$cyl" > >[[alternative HTML version deleted]]
Bert Gunter
2022-Feb-07 23:21 UTC
[R] [External] Convert a character string to variable names
I assume that the mtcars components were used only as an example, as you could convert them to a matrix via as.matrix(). Unfortunately, it was a bad choice: as.name("x$something") is not the name of 'something' in the data frame (or list) x. Moreover, as.name("x") does not point to an object x -- as Rich indicated, it has to be evaluated to do so.> x<- 1:10 > z <- as.name("x") > zx> length(z)[1] 1> eval(z)[1] 1 2 3 4 5 6 7 8 9 10 But more to the point, I think you are attempting to drive from Brooklyn to New York City by way of Los Angeles. If I understand correctly, I think all you need is ?get:> x <- runif(5) > y <- 1:5 > z <- 21:25 > nm <- c('x', 'y','z') > sapply(nm, get)x y z [1,] 0.99602479 1 21 [2,] 0.97458756 2 22 [3,] 0.09496625 3 23 [4,] 0.91444550 4 24 [5,] 0.68331484 5 25 Cheers, Bert Gunter "The trouble with having an open mind is that people keep coming along and sticking things into it." -- Opus (aka Berkeley Breathed in his "Bloom County" comic strip ) On Mon, Feb 7, 2022 at 3:06 PM Richard M. Heiberger <rmh at temple.edu> wrote:> > x <- c("mtcars$disp", "mtcars$hp", "mtcars$cyl") > > x > [1] "mtcars$disp" "mtcars$hp" "mtcars$cyl" > > eval(parse(text=x)) > [1] 6 6 4 6 8 6 8 4 4 6 6 8 8 8 8 8 8 4 4 4 4 8 8 8 8 4 4 4 8 6 8 4 > > for (i in x) print(eval(parse(text=i))) > [1] 160.0 160.0 108.0 258.0 360.0 225.0 360.0 146.7 140.8 167.6 167.6 > 275.8 275.8 275.8 472.0 460.0 440.0 78.7 75.7 71.1 120.1 318.0 > [23] 304.0 350.0 400.0 79.0 120.3 95.1 351.0 145.0 301.0 121.0 > [1] 110 110 93 110 175 105 245 62 95 123 123 180 180 180 205 215 230 > 66 52 65 97 150 150 245 175 66 91 113 264 175 335 109 > [1] 6 6 4 6 8 6 8 4 4 6 6 8 8 8 8 8 8 4 4 4 4 8 8 8 8 4 4 4 8 6 8 4 > > > > On Feb 07, 2022, at 17:55, Erin Hodgess <erinm.hodgess at gmail.com> wrote: > > > >> .x > > > > [1] "mtcars$disp" "mtcars$hp" "mtcars$cyl" > > ______________________________________________ > 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. >[[alternative HTML version deleted]]