全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 R语言论坛
9749 4
2016-04-21
之前通过查找以了解if-else 与ifelse的区别,前者不能处理向量,后者使用更为紧凑。但是在实际使用中发现除了问题,请各位指点!
示例代码如下:
###############################
#对一组数据进行区间判断,划分区间如
#7.5-6-5-3-2,对应类别为1,2,3,4,5,6
###########################
data<-c( "8.772500","12.261250","10.67")
do_sort<-vector(mode="numeric",length=3)
###################################
#使用if-else的判断
for(j in 1:3)
{
if(data[j]>="7.5"){
    do_sort[j]= "1"
    }else if (data[j]>="6" && data[j]<"7.5"){
    do_sort[j]="2"
    } else if (data[j]>="5" && data[j]<"6"){
    do_sort[j]="3"
    } else if (data[j]>= "3" && data[j]<"5"){
    do_sort[j]="4"
    } else if (data[j]>="2" && data[j] <"3"){
    do_sort[j]="5"
    } else if (data[j] <"2"){
    do_sort[j]="6"
    }
}
do_sort[1:3]#结果为1,6,6
############################
#另一种学习的方法
##############
do_sort[data[j]>="7.5"]<-1
do_sort[data[j]>="6" && data[j]<"7.5"]<-2
do_sort[data[j]>="5" && data[j]<"6"]<-3
do_sort[data[j]>= "3" && data[j]<"5"]<-4
do_sort[data[j]>="2" && data[j] <"3"]<-5
do_sort[data[j] <"2"]<-6
do_sort[1:3]#结果为6,6,6,
############################
#使用ifelse的实例
#####################
for(j in 1:3)
{
do_sort[j]<-ifelse(data[j]>="7.5",1,
ifelse(data[j]>="6" && data[j]<"7.5",2,
ifelse(data[j]>="5" && data[j]<"6",3,
ifelse(data[j]>= "3" && data[j]<"5",4,
ifelse(data[j]>="2" && data[j] <"3",5,6
)))))
}
do_sort[1:3]#结果为1,6,6
#################################
正确分类结果应都为1
不知道是哪里问题~~
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

全部回复
2016-4-22 08:58:39
你的数字都加了双引号,所以是字符串。字符串比较大小时,是按前面字符顺序比较的,例如
"87">"677"

另外,这个问题cut()加switch()两行代码更简单
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2016-4-22 09:06:20
万人往LVR 发表于 2016-4-22 08:58
你的数字都加了双引号,所以是字符串。字符串比较大小时,是按前面字符顺序比较的,例如
"87">"677"
非常感谢!的确是你说的错误。已修正可以了。另外你说的cut()和switch()语句更简单。
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2016-4-22 17:05:56
为什么不用findInterval这个函数呢:
复制代码
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2016-4-30 16:52:15
jiangbeilu 发表于 2016-4-22 17:05
为什么不用findInterval这个函数呢:
多谢建议!
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群