楼主: daydreamingII
4671 4

[问答] 按书上例子写的程序,但一运行就object of type 'closure' is not subsettable [推广有奖]

  • 1关注
  • 0粉丝

已卖:1份资源

硕士生

14%

还不是VIP/贵宾

-

威望
0
论坛币
65 个
通用积分
25.9110
学术水平
6 点
热心指数
7 点
信用等级
3 点
经验
8477 点
帖子
80
精华
0
在线时间
144 小时
注册时间
2014-3-19
最后登录
2024-4-9

楼主
daydreamingII 发表于 2018-4-4 09:53:05 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
初学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
二维码

扫码加我 拉你入群

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

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

关键词:closure object Subset Table sure

沙发
菊花冰糖水 发表于 2018-4-4 10:00:41
  1. symbols<-get_symbols()
复制代码


play的函数中的一行,少了个()
已有 2 人评分论坛币 学术水平 热心指数 信用等级 收起 理由
daydreamingII + 5 + 1 + 1 + 1 热心帮助其他会员
cheetahfly + 10 热心帮助其他会员

总评分: 论坛币 + 15  学术水平 + 1  热心指数 + 1  信用等级 + 1   查看全部评分

藤椅
daydreamingII 发表于 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
  1. paste("result : ",play())
复制代码

或者直接 print(play)
已有 1 人评分论坛币 学术水平 热心指数 信用等级 收起 理由
daydreamingII + 5 + 1 + 1 + 1 热心帮助其他会员

总评分: 论坛币 + 5  学术水平 + 1  热心指数 + 1  信用等级 + 1   查看全部评分

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

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2026-1-25 11:26