[問題] 指定dataframe某個欄位的變數型別?
各位先進大家好,小弟是個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
01/21 14:50, 1F
推
01/22 01:03, , 2F
01/22 01:03, 2F
→
01/23 01:46, , 3F
01/23 01:46, 3F
討論串 (同標題文章)
以下文章回應了本文:
完整討論串 (本文為第 1 之 2 篇):