I have created some variables. I would like to duplicate these so that they exist twice, once with the name you see below, and once with Ireland_ in front of their name, i.e.,
c_PFS_Folfox = 307.81
would become:
Ireland_c_PFS_Folfox = 307.81
I initially define these as follows:
1. Cost of treatment in this country
c_PFS_Folfox <- 307.81
c_PFS_Bevacizumab <- 2580.38
c_OS_Folfiri <- 326.02
administration_cost <- 365.00
2. Cost of treating the AE conditional on it occurring
c_AE1 <- 2835.89
c_AE2 <- 1458.80
c_AE3 <- 409.03
3. Willingness to pay threshold
n_wtp = 45000
Then I put them together to rename all at once:
kk <- data.frame(c_PFS_Folfox, c_PFS_Bevacizumab, c_OS_Folfiri, administration_cost, c_AE1, c_AE2, c_AE3, n_wtp)
colnames(kk) <- paste("Ireland", kk, sep="_")
kk
Ireland_307.81 Ireland_2580.38 Ireland_326.02 Ireland_365 Ireland_2835.89 Ireland_1458.8
1 307.8 2580 326 365 2836 1459
Ireland_409.03 Ireland_45000
1 409 45000
Obviously this isn't the output I intended. These also don't exist as new variables in the environment.
What can I do?
CodePudding user response:
First put all your variables in a vector, then use sapply
to iterate the vector to assign
the existing variables to a new variable with the prefix "Ireland_".
your_var <- c("c_PFS_Folfox", "c_PFS_Bevacizumab", "c_OS_Folfiri",
"administration_cost", "c_AE1", "c_AE2", "c_AE3", "n_wtp")
sapply(your_var, \(x) assign(paste0("Ireland_", x), get(x), envir = globalenv()))
CodePudding user response:
If we want to create objects with Ireland_
as prefix, either use
list2env(setNames(kk, paste0("Ireland_", names(kk))), .GlobalEnv)
Once we created the objects in the global env, we may remove the original objects
> rm(list = names(kk))
> ls()
[1] "Ireland_administration_cost" "Ireland_c_AE1" "Ireland_c_AE2" "Ireland_c_AE3" "Ireland_c_OS_Folfiri"
[6] "Ireland_c_PFS_Bevacizumab" "Ireland_c_PFS_Folfox" "Ireland_n_wtp" "kk"
or with %=%
from collapse
library(collapse)
paste("Ireland", colnames(kk), sep="_") %=% kk
-checking
> Ireland_administration_cost
[1] 365
> Ireland_c_PFS_Folfox
[1] 307.81