[問題] 指定dataframe某個欄位的變數型別?

看板R_Language作者 (復讎の業火)時間7年前 (2017/01/21 13:56), 7年前編輯推噓1(102)
留言3則, 3人參與, 最新討論串1/2 (看更多)
各位先進大家好,小弟是個R語言的新手, 由於之前的功底是C#,已經很習慣變數型別要先指定的操作方式, 最近小弟寫了一段程式碼如下(僅列出關鍵部份),碰上一個問題想請各位大大幫忙: setwd("D://R//") #設定R語言的執行路徑,相關的檔案都要放在這個資料夾下 CYLDFP.tr=read.csv("CYLDFP_TRAIN_100.csv", header=TRUE, row.names = 1) #開啟CYLDFP_TRAIN_100.csv這個檔案 library(rpart) #要用到rpart函式庫 set.seed(1111) cart=rpart(Species~.,CYLDFP.tr,control=rpart.control(cp=0)) #建立cart決策樹 cart_prune=prune(cart, cp=0.03) #設定決策樹之複雜係數,cp值愈小愈複雜 summary(cart_prune) #顯示出決策樹之各項參數摘要 我想用決策樹來預測某個欄位的資料標籤, 這個程式從一個CSV檔裡頭讀進一個dataframe,命名為CYLDFP.tr, 而CYLDFP.tr裡頭有一個稱作Species的欄位,是我想要讓決策樹來預測的變數。 現在問題在於,原始的資料提供者在這個欄位裡頭只放0或1, R語言的強項就在於它會自動辨識變數欄位是屬於numeric, logical或是factor, 但反而是這種自動的機制造成了判斷錯誤, 因為在小弟這個例子中,只有1或0的欄位應該要被判定為是logical, 但決策樹跑出來的結果,它竟然被當成了numeric來處理, 因為預測值出現了0與1以外的實數。 小弟應該要怎麼「強制指定」Species這整個欄位是屬於logical類別呢? 不好意思可能問了很基本的問題,但是爬文沒有爬到答案, 或者說我有看到as.numeric()這樣的函式,但找得到的範例都是套用在單一的變數上, 而不是套用在dataframe裡的一整個欄位(column)上頭, 懇請各位大大相助解惑了,感激不盡! -- 子曰:『槍管不清,則禮樂不興。』 ~掄語 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 1.160.28.78 ※ 文章網址: https://www.ptt.cc/bbs/R_Language/M.1484978206.A.975.html ※ 編輯: CYBASTER (1.160.28.78), 01/21/2017 13:57:13

01/21 14:50, , 1F
CYLDFP.tr$Species <- as.logical(CYLDFP.tr$Species) ?
01/21 14:50, 1F

01/22 01:03, , 2F
read.csv函數裡面加上colClasses這個參數看看
01/22 01:03, 2F

01/23 01:46, , 3F
非常感謝大大解答!立刻來試試…
01/23 01:46, 3F
文章代碼(AID): #1OWlWUbr (R_Language)
文章代碼(AID): #1OWlWUbr (R_Language)