Reputation: 53
I have a data frame JPYData (content not important):
Date Open High Low Close
1514851200 112.7720 112.7765 112.7575 112.7705
1514851260 112.7705 112.7705 112.7660 112.7680
I am looping an analysis through several different currencies, and each has a similar data frame. To call them dynamically within my script, I am trying to use active.data <- sprintf("%sData", currency)
. In this example, my code is effectively just active.data <- "JPYData"
, instead of storing the data frame in active.data. I have tried coercing with as.name(sprintf("%sData", currency))
, but to no avail. Any help would be much appreciated.
Thanks
Upvotes: 1
Views: 37
Reputation: 1817
You can use get
(see the doc) as in the following example:
mydf <- 'mtcars'
## mtcars is a build-in dataframe we want to access by its name.
## We assign the string to mydf.
active.data <- get(mydf)
## print the first rows on the screen for confirmation
head(active.data)
mpg cyl disp hp drat wt qsec vs am gear carb
Mazda RX4 21.0 6 160 110 3.90 2.620 16.46 0 1 4 4
Mazda RX4 Wag 21.0 6 160 110 3.90 2.875 17.02 0 1 4 4
Datsun 710 22.8 4 108 93 3.85 2.320 18.61 1 1 4 1
Hornet 4 Drive 21.4 6 258 110 3.08 3.215 19.44 1 0 3 1
Hornet Sportabout 18.7 8 360 175 3.15 3.440 17.02 0 0 3 2
Valiant 18.1 6 225 105 2.76 3.460 20.22 1 0 3 1
In your case you would use
active.data <- get(sprintf("%sData", currency))
Upvotes: 2