r - Piping variable name into dataframe columns -
i've been trying create function can pipe name of variable names of columns data.frame created in function.
for example:
#create variable var1 <- c(1,1,2,2,3,3) #create function dummy codes variable , renames them rename_dummies <- function(x){ m <- model.matrix(~factor(x)) colnames(m)[1] <- "dummy1" colnames(m)[2] <- "dummy2" colnames(m)[3] <- "dummy3" m <<- data.frame(m) } rename_dummies(var1)
now, can add function that "var1" automatically placed in front of "dummy" in each of variable names? ideally end 3 variables this...
> names(m) [1] "var1_dummy1" "var1_dummy2" "var1_dummy3"
try below code. key in deparse(substitute)
. modified function not use global assignment operator <<-
, poor practice.
var1 <- c(1,1,2,2,3,3) #create function dummy codes variable , renames them rename_dummies <- function(x){ nm = deparse(substitute(x)) m <- model.matrix(~factor(x)) colnames(m)[1] <- "dummy1" colnames(m)[2] <- "dummy2" colnames(m)[3] <- "dummy3" m <- data.frame(m) names(m) <- paste(nm, names(m), sep = "_") m } rename_dummies(var1)
Comments
Post a Comment