全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 R语言论坛
4560 4
2018-04-04
初学R,按照《R语言入门与实践》书中的例子(项目3:老虎机),一模一样写的程序,但一运行就跳出Error in symbols[1] : object of type 'closure' is not subsettable,跟书上对了好几遍,找不出错误,实在摸不着头脑,求前辈指点,非常感谢!

程序如下:
get_symbols<-function(){
wheel<-c("DD","7","BBB","BB","B","C","0")
sample(wheel,size=3,replace=TRUE,
prob=c(0.03,0.03,0.06,0.1,0.25,0.01,0.52))
}

score<-function(symbols){
same<-symbols[1]==symbols[2]&&symbols[1]==symbols[3]
bars<-symbols %in% c("B","BB","BBB")
if(same){
payouts<-c("DD"=100,"7"=80,"BBB"=40,"BB"=25,"B"=10,"C"=10,"0"=0)
prize<-unname(payouts[symbols[1]])
}else if(all(bars)){
prize<-5
}else{
cherries<-sum(symbols=="C")
prize<-c(0,2,5)[cherries+1]
}
diamonds<-sum(symbols=="DD")
prize<-prize*2^diamonds
}

play<-function(){
symbols<-get_symbols
print(symbols)
score(symbols)
}

play()

运行后结果如下:
function(){
wheel<-c("DD","7","BBB","BB","B","C","0")
sample(wheel,size=3,replace=TRUE,
prob=c(0.03,0.03,0.06,0.1,0.25,0.01,0.52))
}
Error in symbols[1] : object of type 'closure' is not subsettable
二维码

扫码加我 拉你入群

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

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

全部回复
2018-4-4 10:00:41
复制代码


play的函数中的一行,少了个()
二维码

扫码加我 拉你入群

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

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

2018-4-4 10:23:47
菊花冰糖水 发表于 2018-4-4 10:00
play的函数中的一行,少了个()
您好,非常感谢!
加了()之后不会报错了,但是只跳出了play()的一个结果,就是print(symbols),但是没有score(symbols)的结果,能否帮看下是哪里出了问题啊?

我的运行结果:
"BB" "BB" "BB"

书上的运行结果举例:
"BB" "BB" "BB"
25
二维码

扫码加我 拉你入群

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

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

2018-4-4 13:17:26
复制代码

或者直接 print(play)
二维码

扫码加我 拉你入群

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

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

2018-4-4 14:26:44
菊花冰糖水 发表于 2018-4-4 13:17
或者直接 print(play)
恩恩,print(play())和paste("result : ",play()) 都能出结果,前者跟书上的显示格式也是一模一样,真的太谢谢你啦!
二维码

扫码加我 拉你入群

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

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

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

说点什么

分享

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