【问题标题】:How to use a list name as character如何使用列表名称作为字符
【发布时间】:2019-03-20 08:07:01
【问题描述】:

我想训练一个模型并为其命名。我也想用这个名字作为字符来创建一个带有模型摘要的文本文件。所以我创建了一个如下的函数

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=""));
}

在函数中,我想使用 ModeName 作为字符。我试图运行它,但它不起作用。在这种情况下,ModelName 是一个列表。如何使用 ModelName 作为字符?

【问题讨论】:

标签: r list character


【解决方案1】:

要将变量名改为字符串,可以使用deparse和substitute,如下:

deparse(substitute(ModeName))

它返回“ModeName”,它可以是您文件路径的一部分。

我试过这个。它有效。

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

这也有效:

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

【讨论】:

  • deparse(substitute(ModeName)) 在单行命令中工作,但如果它包含在函数中,它会将 ModeName 视为列表,而不是“ModeName”。
  • 我尝试使用一个函数。它仍然有效。请阅读新编辑的答案。
猜你喜欢
  • 1970-01-01
  • 2019-04-25
  • 2019-11-21
  • 1970-01-01
  • 1970-01-01
  • 2019-05-04
  • 1970-01-01
  • 2011-06-08
  • 1970-01-01
相关资源
最近更新 更多