楼主:
gsuper (Logit(odds))
2015-05-22 14:33:19assign.group <- function(value){
if(value < 0.25){return_value <- "group1"}
else if(value < 0.5){return_value <- "group2" }
else if(value < 0.75){return_value <- "group3" }
else return_value <- "group4"
return_value
}
## 新增字段并填入值
add.col.group <- function(data){
data$group <- 0
data$group <- sapply(data$avg, assign_group) ##avg即为第八个字段的名称
data
}
楼主:
gsuper (Logit(odds))
2015-05-22 23:51:00有时候可以 但容易出bug 所以我一像都会避开这种格式
恩恩,我只是想说factor通常被当成1,2,3,...不确定double变成factor是否可以一样的数值运算我自己run是会出现错误In Ops.factor(a, 0.25) :‘>’ not meaningful for factors
楼主:
gsuper (Logit(odds))
2015-05-22 23:55:00as.numeric(as.matrix(factor)) 我都是这样宣告的不用去管float, double, numeric, integer 等细节
R应该不会自动把double转成factor才是。
楼主:
gsuper (Logit(odds))
2015-05-22 23:56:00因为 read.table 会默认是dataframe然后dataframe$vector 好像大部分是默认 factor但是细节我也不清楚 所以读取档案以后 一定会这样写
楼主:
gsuper (Logit(odds))
2015-05-22 23:58:00gsub("^ *| *$","",as.matrix(read.table("档案")))
楼主:
gsuper (Logit(odds))
2015-05-22 23:59:00那我之后测试看看... factor的属性我不是很熟
我自己测试是只有character会自动转换read.table有一个option是as.is 可以设定是否要转
楼主:
gsuper (Logit(odds))
2015-05-23 00:03:00不过我觉得原po 的问题主因可能还是喂 factor 给 sapply()因为这状况我碰过很多次
data$avg默认是factor,我觉得怪怪,可以再讨论
楼主:
gsuper (Logit(odds))
2015-05-23 00:04:00给他测试看看囉...原po试试 class(data$avg)告诉我们结果是什么
不过至少,没有转换过的factor,'>'是不能用
作者:
locka (locka)
2015-05-23 00:16:00抱歉这么晚回,因为今天我比较晚回来,明天又要早起,所以暂时无法测试…各位大大的回馈我都会一一测试消化,不过我这里可以先跟g大补充一下,如果我没记错的话,我data$avg的资料是有前处理转成numeric的 所以应该不是喂factor的问题?