davidzxc574
davidzxc574

Reputation: 491

How to use a list name as character

I would like to train a model and give it a name. I would like to use this name as character as well to create a text file with model summary. So I created a function as below

C50Training<-function(ModeName,DF_Trai,Form,
                      Str_PathSum){
  library(C50);

  ModeName<-C5.0(formula=Form,data=DF_Trai);
  capture.output(summary(ModeName),file=paste(Str_PathSum,"/Summ",ModeName,".txt",sep=""));
}

In the funtion I want to use ModeName as characters. I tried to run it but it does not work. ModelName is a list in this case. How can I use ModelName as character?

Upvotes: 1

Views: 153

Answers (1)

Victoria Liew
Victoria Liew

Reputation: 36

To change a variable name to string, you can use deparse and substitute, as follows:

deparse(substitute(ModeName))

It return "ModeName" that can be part of your file path.

I tried this. It works.

ModeName=c(1,2,3)
f<-function(ModeName){
  print(paste("/Summ",deparse(substitute(ModeName)),".txt",sep=""))
}
f(ModeName)

and this works too:

ModeName=c(1,2,3)
f<-function(list){
  print(paste("/Summ",deparse(substitute(list)),".txt",sep=""))
}
f(ModeName)

Upvotes: 1

Related Questions