Notice: On April 23, 2014, Statalist moved from an email list to a forum, based at statalist.org.
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
st: RE: How to pass scalar argument to a function's options (-prvalue- in this case)
From
Nick Cox <[email protected]>
To
"'[email protected]'" <[email protected]>
Subject
st: RE: How to pass scalar argument to a function's options (-prvalue- in this case)
Date
Mon, 19 Dec 2011 17:22:30 +0000
-prvalue- is a user-written command from wherever you downloaded it from. Please remember that you are asked to explain this. Giving authors is not what is asked for: the ideal is that people can immediately download from the same place for themselves.
I don't know the insides or even outsides of -prvalue-, but I'd guess what you want is this.
I don't think the issue is whether you understand scalars, but rather that you are expecting -prvalue- to understand that a particular name is a scalar name. I don't think that a typical program will do that amount of work for you in deciphering option arguments. In any case, if -prvalue- wants a value, passing it a name is at best indirect. The error message clearly implies that -prvalue- wants to feed on a number, not a name.
Instead of
summarize weight, meanonly
scalar log_mean_weight = log(r(mean))
prvalue, x(log_weight = log_mean_weight)
try
summarize weight, meanonly
prvalue, x(log_weight = `=log(r(mean))')
The framing `= ' obliges Stata to evaluate its argument and pass it to -prvalue- as a numeric result.
It's possible that wrapping the argument in -scalar()- would help, but as above using a scalar as intermediary seems unnecessary here.
I've given up hoping that I have no Stata blindspots left.
Nick
[email protected]
Richard Herron
I think this is a gross conceptual error I have in how Stata uses
scalars, but I have an example using Long and Xu's -prvalue-.
I would like to evaluate a -probit- model with a logged right hand
side variable at the "log of the mean" instead of at the "mean of the
log." I find the mean with -summarize- then store the log with
-scalar-, but when I pass -log_mean_weight- as an argument to the
-x()- option in -prvalue- I get the following error
'log_mean_weight' found where number expected
Here is some reproducible code
* begin code
sysuse auto, clear
generate log_weight = log(weight)
generate price_dummy = (price > 10000)
probit price_dummy log_weight mpg length
* I would like to determine probability at the log of mean weight
summarize weight, meanonly
scalar log_mean_weight = log(r(mean))
prvalue, x(log_weight = log_mean_weight)
* end code
I have also unsuccessfully tried to use a -tempname- instead of
-scalar-, but in that case -prvalue- returns
'__000000' found where number expected
Thanks! I think (well, hope) that this scalar problem is my last major
Stata blind spot.
*
* For searches and help try:
* http://www.stata.com/help.cgi?search
* http://www.stata.com/support/statalist/faq
* http://www.ats.ucla.edu/stat/stata/