微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在用户定义函数内部调用colnames

如何解决在用户定义函数内部调用colnames

我想如下定义一个函数AUC ...!

stub_t

并按如下方式调用

RemoveStubAndCallDummy

函数正在返回

AUC<-function(model,df,label_name) {
  
pred = data.frame(predict(model,type = 'prob')) 
colnames(pred) = paste(colnames(pred),label_name)  

} 

但是我需要的是它应该返回(就像虹膜数据集一样)

abc<-AUC(rf_res,df=test_df,label_name="_pred_RF")
head(abc)

外部功能相同的行

[1] "setosa _pred_RF"     "versicolor _pred_RF" "virginica _pred_RF"

解决方法

我认为问题很简单,就是您没有从该函数返回数据帧。这是您使用中的功能的完整示例:

library(randomForest)

AUC<-function(model,df,label_name) 
{
  pred <- data.frame(predict(model,type = 'prob')) 
  colnames(pred) <- paste(colnames(pred),label_name)
  return(pred)
}

rf_res <- randomForest(Species ~ .,data = iris)

abc <- AUC(rf_res,df = iris,label_name = "_pred_RF")
head(abc)
#>   setosa _pred_RF versicolor _pred_RF virginica _pred_RF
#> 1               1                   0                  0
#> 2               1                   0                  0
#> 3               1                   0                  0
#> 4               1                   0                  0
#> 5               1                   0                  0
#> 6               1                   0                  0

reprex package(v0.3.0)于2020-09-04创建

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。