iT邦幫忙

0

R語言迴圈疑問

  • 分享至 

  • xImage

大家好:
小弟想將每個欄位做自動分箱(woe.binning),但是迴圈一直卡在命名(colnames)的地方,期望是將2~4個欄位剔除5,來做分箱,並合併在一起,以下是我的程式碼,想請問大大們是哪裡寫錯了,感謝/images/emoticon/emoticon02.gif

library(dplyr)
library(data.table)
library(naniar)
library(scorecard) # woe IV
library(woeBinning) #自動分箱
library(magrittr)

data(iris)
iris <- mutate(iris,Sepal.Length=ifelse(Sepal.Length>5,1,0))
out = data.frame()
for(i in c(2:4)){
  traindata <- data[,c(1,i)]
  traindata <- as.data.frame(traindata)
  colnames(traindata) <-  c("Sepal.Length","x")
  traindata <- subset(traindata,x!=5)
  traindata$x <- as.numeric(traindata$x)
  bins2_tree <- woe.binning(traindata, 'Sepal.Length', traindata)
  dataset_woe <- woe.binning.deploy(traindata, bins2_tree, add.woe.or.dum.var = "woe")
  out <-dataset_woe[,c(1,3)]
  print(i+1)
}

obarisk iT邦研究生 1 級 ‧ 2022-07-08 07:35:40 檢舉
沒有錯誤訊息?
may031556 iT邦新手 5 級 ‧ 2022-07-09 13:49:23 檢舉
迴圈的第一句:令traindata為data的第1與i欄
執行成功的要件:data是一個資料集
但你沒有定義data是什麼資料集,所以出現錯誤
把這行的data用 iris取代呢?

小提醒:iris 是內建的資料集,迴圈前2行對iris重新定義 (iris = mutate(...)),這做法蠻特別的,一般似乎會盡量避免異動內建物件的內容
把data改掉之後就可以了,謝謝您~
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友回答

立即登入回答