全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 R语言论坛
955 3
2014-03-12



  • > u=runif(5) #生成5个服从(0,1)均匀分布
    > u
    [1] 0.5811736 0.1417997 0.8934533 0.1645944 0.7795856
    > y1=c(1,2,3,4,5)
    > y2=c(6,7,8,9,10)
    > ifelse(u<0.5,y1,y2)
    [1] 6 2 8 4 10
    我现在有y1,y2,y3,y4,想让u<0.25的对应y1元素,0.25<=u<0.5的对应y2元素,0.5<=u<0.75的对应y3元素,最后0.75<=y的对应y4元素。怎么办?不要用for循环啊,老师不让,求有没有现成的语言像ifelse一样,非常感谢!  





二维码

扫码加我 拉你入群

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

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

全部回复
2014-3-12 21:05:38



#set.seed(12346)
u=runif(5) #生成5个服从(0,1)均匀分布
u


y1=c(1,2,3,4,5)
y2=c(6,7,8,9,10)
# ifelse(u<0.5,y1,y2)
y3=c(11,12,13,14,15)
y4=c(16,17,18,19,20)

#我现在有y1,y2,y3,y4,想让u<0.25的对应y1元素,0.25<=u<0.5的对应y2元素,0.5<=u<0#.75的对应y3元素,最后0.75<=y的对应y4元素。怎么办?不要用for循环啊,老师不让,求有没有现成的语言像ifelse一样,非常感谢!
value=rep(NA,5)

value[ u<=0.25]= y1[u<=0.25]
value

value[ u>0.25&u<=0.5]= y2[u>0.25&u<=0.5]
value

value[ u>0.5&u<=0.75]= y3[u>0.5&u<=0.75]
value

value[ u>=0.75]= y4[u>=0.75]
value

value

二维码

扫码加我 拉你入群

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

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

2014-3-12 22:36:49
复制代码
二维码

扫码加我 拉你入群

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

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

2014-3-19 17:42:40
> u<-runif(5)
> y1<-1:5
> y2<-6:10
> y3<-11:15
> y4<-16:20
> ind<-as.integer(cut(u,breaks=c(0,0.25,0.5,0.75,1)))
> y<-rbind(y1,y2,y3,y4)
> y[cbind(ind,1:5)]
[1] 11 17  3 19 10
> u
[1] 0.6172559 0.7970889 0.1834669 0.7976067 0.3278554
>
二维码

扫码加我 拉你入群

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

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

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

说点什么

分享

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