作者CYBASTER (复雠の业火)
看板R_Language
标题[问题]指定dataframe某个栏位的变数型别?
时间Sat Jan 21 13:56:40 2017
各位先进大家好,小弟是个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://webptt.com/cn.aspx?n=bbs/R_Language/M.1484978206.A.975.html
※ 编辑: CYBASTER (1.160.28.78), 01/21/2017 13:57:13
1F:→ EDI95: CYLDFP.tr$Species <- as.logical(CYLDFP.tr$Species) ? 01/21 14:50
2F:推 chienpang: read.csv函数里面加上colClasses这个参数看看 01/22 01:03
3F:→ CYBASTER: 非常感谢大大解答!立刻来试试… 01/23 01:46