全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 数据分析与数据挖掘
1680 4
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 20:56:50



#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 21:12:56
楼上代码略复杂,其实一行代码就可以:
> u=runif(5) #生成5个服从(0,1)均匀分布
> u
[1] 0.5418366 0.5557127 0.2735714 0.9974725 0.1302037
> y1=c(1,2,3,4,5)
> y2=c(6,7,8,9,10)
> y3=c(11,12,13,14,15)
> y4=c(16,17,18,19,20)
> y=ifelse(u<0.25,y1,ifelse(u<0.5,y2,ifelse(u<0.75,y3,y4)))
> y
[1] 11 12  8 19  5
二维码

扫码加我 拉你入群

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

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

2014-3-12 21:42:24
凸集分离定理 发表于 2014-3-12 20:56
#set.seed(12346)
u=runif(5) #生成5个服从(0,1)均匀分布
u
谢谢大家给我提供思路!
二维码

扫码加我 拉你入群

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

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

2014-3-12 21:43:11
Crsky7 发表于 2014-3-12 21:12
楼上代码略复杂,其实一行代码就可以:
> u=runif(5) #生成5个服从(0,1)均匀分布
> u
谢谢大家给我提供思路!
二维码

扫码加我 拉你入群

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

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

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

说点什么

分享

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