[问题] 资料分类

楼主: puppy77 ( )   2014-02-09 20:16:52
[问题类型]:
程式咨询(我想用R 做某件事情,但是我不知道要怎么用R 写出来)
[软件熟悉度]:
入门(写过其他程式,只是对语法不熟悉)
[问题叙述]:
我有n笔资料,每笔资料都有m个变量,存在data.frame里面(维度n*m)
需要依照m个变量的值去做分类,譬如当一笔资料
V1<0 and V2>V3 and V4 %in% c("W","Z")
就会分类为第1类
类别有很多,大约30类左右
希望最后得到一个长度n的向量,向量里面的数字就是分类的编号
原本是想用if else if去做,但似乎不能用在向量上
只会对第一笔资料做判断(这部分我不是非常确定,还请大家纠正)
所以外面需要套上for循环去一笔一笔判断
但因为资料非常多,还是希望能够以向量的方式下去做
我目前的做法是
result = rep(0,n) #记录最后分类结果的向量
fg = rep(T,n) #记录每一笔资料是否被分类过(已分类F,未分类T)
r1 = 是否符合第1类条件的向量(长度n,内容全是T or F)
result[r1 & fg] = 1
fg[r1 & fg] = F
r2 = 是否符合第2类条件的向量
result[r2 & fg] = 2
fg[r2 & fg] = F
依此类推到最后
虽然这个已达到我的要求,不过还是稍嫌麻烦,不知道有无更俐落的写法?
作者: Wush978 (拒看低质媒体)   2014-02-09 21:17:00
我觉得`cut`应该可以达到你要的功能细节使用你要自己去读?cut了
楼主: puppy77 ( )   2014-02-09 22:06:00
我会研究看看,谢谢!!cut是否只能用在一个变量的情况??

Links booklink

Contact Us: admin [ a t ] ucptt.com