My code doesn't give that error so you must have done something
differently -- without seeing your code, I can't tell you what though.
Also, please cc the list on follow-up if you are seeking further help.
I'm not particularly knowledgeable about rpanel and others might be
able to give concrete help.
Michael
On Sun, Mar 11, 2012 at 9:42 AM, James Carey <james.jism.carey at
gmail.com> wrote:> I have made the changes recommended but now I am getting the following
> error:
>
> Error in index > 100 :
> ? comparison (6) is possible only for atomic and list types
>
> I have an if statement in the body of the while() to only calculate the
> values once 100 steps have been passed so I am guessing this is the cause
of
> this error.
>
> On Sun, Mar 11, 2012 at 1:57 AM, R. Michael Weylandt
> <michael.weylandt at gmail.com> wrote:
>>
>> Your immediate problem seems to be that you use "sum" as a
variable
>> name when it is also a function name. You also have scoping issues
>> that result from how you're using with() -- if you don't return
an
>> object, it gets thrown away after the with() function is done (part of
>> the functional paradigm) -- I've started to clean this up a little,
>> but it now bumps up against the fact you don't return things in the
>> rpanel bits -- I don't really use that package much but hopefully
this
>> gets you going in the right way:
>>
>> main <- function(panel) {
>> ? ? ? ?SUM <- with(panel,{
>> ? ? ? ? ? ? ? ?LAST = 1100
>> ? ? ? ?START = 0
>> ? ? ? ?INDX = 0 ? ? ? ? ? ? ? ? ? ? ? ? ? #### Starting Conditions
>> ? ? ? ?revenue = 0
>> ? ? ? ?minStock = panel$minStock
>> ? ? ? ?maxStock = 100
>> ? ? ? ?inventory = 100
>> ? ? ? ?order_costs = 0
>> ? ? ? ?storage_costs = 0
>> ? ? ? ?orderlevel = k
>> ? ? ? ?SUM = list(ninventory = inventory,
>> ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?order_costs = 0,
>> ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?storage_costs = 0,
>> ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?revenue = 0,
>> ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?index = INDX)
>> ? ? ? ? ? ? ? ?# initial list containing values
>>
>> ? ? ? ? ? ? ? ?while(SUM$index < LAST && inventory >0) {
>> ? ? ? ? ? ? ? ?SUM$order_costs = SUM$order_costs + order_costs
>> ? ? ? ? ? ? ? ?SUM$storage_costs = SUM$storage_costs + storage_costs
>> ? ? ? ? ? ? ? ?SUM$ninventory = SUM$ninvenotry + inventory
>>
>> ? ? ? ? ? ? ? ? ? ? ? ?SUM$index = SUM$index + 1
>> ? ? ? ? ? ? ? ?}
>> ? ? ? ? ? ? ? ?SUM
>> ? ? ? ?})
>> ? ? ? ?print(SUM)
>> ? ? ? ?sis = list(Time = SUM$index,
>> ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?StorageCosts=SUM$storage_costs,
>> ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?OrderCosts = SUM$order_cost,
>> ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?fInventory = SUM$ninventory)
>> ? ? ? ?print(sis)
>> ? ? ? ?return(sis)
>> ?}
>>
>> panel <- rp.control(title="Stochastic Case")
>> rp.button(panel,action=main,title="Calculate")
>>
rp.slider(panel,k,from=10,to=90,resolution=10,showvalue=TRUE,title="Select
>> Order Size",initval=70)
>> rp.slider(panel,minStock,from=10,to=90,resolution=10,initval>>
50,title="Minimum Stock Level",showvalue=TRUE)
>>
>>
>> Note also that "index" is a function so you need to be smart
in how
>> you use that name.
>>
>> Michael
>>
>> On Fri, Mar 9, 2012 at 6:59 AM, jism7690 <james.jism.carey at
gmail.com>
>> wrote:
>> > Hi Michael,
>> >
>> > Thank you for your reply. I have uploaded the minimum, I have left
out
>> > the
>> > formulas for calculating the amounts as they are not important to
the
>> > loop.
>> > Basically I have a while loop running that adds to the list of
values
>> > and
>> > then outside this loop I have a list called sis, this is the list
that
>> > is
>> > causing the error. I would like this list to return the values
with
>> > panel,
>> > before I used rpanel it was returning values perfectly.
>> >
>> > Thanks
>> >
>> > main <- function(panel)
>> > {
>> > with(panel,{
>> >
>> > ? ? ? ?LAST = 1100
>> > ? ? ? ?START = 0
>> > ? ? ? ?index = 0 ? ? ? ? ? ? ? ? ? ? ? ? ? #### Starting
Conditions
>> > ? ? ? ?revenue = 0
>> > ? ? ? ?minStock = panel$minStock
>> > ? ? ? ?maxStock = 100
>> > ? ? ? ?inventory = 100
>> > ? ? ? ?order_costs = 0
>> > ? ? ? ?storage_costs = 0
>> > ? ? ? ?orderlevel =panel$k
>> > ? ? ? ?sum >> >
list(ninventory=inventory,order_costs=0,storage_costs=0,revenue = 0)
>> > # initial list containing values
>> >
>> > ? ? ? ?while(index < LAST && inventory >0) {
>> >
>> > ? ? ? ?sum$order_costs = sum$order_costs + order_costs
>> > ? ? ? ?sum$storage_costs = sum$storage_costs + storage_costs
>> > ? ? ? ?sum$ninventory = sum$ninvenotry + inventory
>> >
>> >
>> > ?index = index + 1
>> >
>> > }
>> > })
>> > ? ? ? ?sis = list(Time >> >
index,StorageCosts=sum$storage_costs,OrderCosts>> >
sum$order_cost,fInventory = sum$ninventory)
>> > ? ? ? ?return(sis)
>> > ?}
>> >
>> >
>> > panel <- rp.control(title="Stochastic Case",
size=panel.size)
>> >
rp.button(panel,action=main,title="Calculate",pos=pos.go.button)
>> >
>> >
rp.slider(panel,k,from=10,to=90,resolution=10,showvalue=TRUE,title="Select
>> > Order Size",pos=pos.order.slider,initval=70)
>> >
>> >
rp.slider(panel,minStock,from=10,to=90,resolution=10,pos=pos.minstock.slider,initval
>> > = 50,title="Minimum Stock Level",showvalue=TRUE)
>> >
>> >
>> >
>> > --
>> > View this message in context:
>> >
http://r.789695.n4.nabble.com/rpanel-list-error-tp4457308p4459254.html
>> > Sent from the R help mailing list archive at Nabble.com.
>> >
>> > ______________________________________________
>> > R-help at r-project.org mailing list
>> > https://stat.ethz.ch/mailman/listinfo/r-help
>> > PLEASE do read the posting guide
>> > http://www.R-project.org/posting-guide.html
>> > and provide commented, minimal, self-contained, reproducible code.
>
>