全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 R语言论坛
5606 11
2012-12-09
非常感谢帮忙的人!m<(_ _)>m

程序如下:
u=runif(1000)
v=runif(1000)
if v<=u  y==0
else y==1
s=sum(y*exp(-((1/u)+(1/v)-2))*(1/(u*v)^2))/1000
s


显示结果如下:(就是错误的地方不知道如何改……)
> u=runif(1000)
> v=runif(1000)
>
> if v<=u  y==0
错误: 意外的符号在"if v"里
>
> else y==1
错误: 意外的'else'在"else"里
> s=sum(y*exp(-((1/u)+(1/v)-2))*(1/(u*v)^2))/1000
> s
[1] 0.503547

二维码

扫码加我 拉你入群

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

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

全部回复
2012-12-9 22:40:05
我没学过R语言,但是,据我对某些语言的了解(抱歉,基本是瞎猜),可能可以考虑检查:
- 可能if后面要有(),即 if(。。。)。。。
- 你的那两句中有,y==0  y==1。但这些语句似乎是比较语句,不是赋值语句,而你似乎想赋值。所以,可能也是错误原因
二维码

扫码加我 拉你入群

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

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

2012-12-10 00:57:06
TaskShare 发表于 2012-12-9 22:40
我没学过R语言,但是,据我对某些语言的了解(抱歉,基本是瞎猜),可能可以考虑检查:
- 可能if后面要有( ...
正解! 还有就是if后面的判断语句要加括号if (....)
二维码

扫码加我 拉你入群

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

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

2012-12-10 20:52:45
TaskShare 发表于 2012-12-9 22:40
我没学过R语言,但是,据我对某些语言的了解(抱歉,基本是瞎猜),可能可以考虑检查:
- 可能if后面要有( ...
谢谢你啦
二维码

扫码加我 拉你入群

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

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

2012-12-10 20:56:18
qoiqpwqr 发表于 2012-12-10 00:57
正解! 还有就是if后面的判断语句要加括号if (....)
但是我改成下面这样子还是有错。说是长度出了问题,是不是u,v个包含1000个数,所以下面的用期望求积分的式子不能进行呢?难道需要把每个u,v后加上?谢谢

u=runif(1000)
v=runif(1000)
if(v<=u){
y=0}else{
y=1}
s=sum(y*exp(-((1/u)+(1/v)-2))*(1/(u*v)^2))/1000
s
二维码

扫码加我 拉你入群

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

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

2012-12-10 21:39:36
eliza943 发表于 2012-12-10 20:56
但是我改成下面这样子还是有错。说是长度出了问题,是不是u,v个包含1000个数,所以下面的用期望求积分的式 ...
貌似这样就可以吧:
u=runif(1000)
v=runif(1000)
y=as.numeric(v>u)
s=sum(y*exp(-((1/u)+(1/v)-2))*(1/(u*v)^2))/1000
s
二维码

扫码加我 拉你入群

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

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

点击查看更多内容…
相关推荐
栏目导航
热门文章
推荐文章

分享

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