Using R stats, I want to access a variable variable scenario similar to PHP double-dollar-sign technique: http://php.net/manual/en/language.variables.variable.php
Specifically, I am looking for a function in R that is equivalent to $$ in PHP.
UPDATE: The approved answer contains the basic function needed
##################################
hello="hello world";
a="hello";
result=get(a);
print(result);
##################################
In PHP, I can assign $a="hello";
and $hello="hello world";
. I can then use an eval
to dynamic change variables; this is called a variables variable in php, using two dollar signs ($$): echo($$a);
will print "hello world". It evaluate $a which is hello, then evaluates $hello.
So, I have a regression setup using R, with 4 data options and 3 model options. I perform about 60 lines of stats using R and mainly the library plm, but also tseries, lmtest (a bunch of diagnostic tests, a pooled OLS, fixed effects (FE), and random effects (RE) with tests for heteroskedasticity, serial autocorrelation, cross-dependence autocorrelation, and so on. If these elements exist, I smartly update the standard errors depending on what is present: only hetero [vcovHC white], hetero-serial or hetero-cross [vcovHC arellano], all [vcovSCC Driscoll-Kraay].
In the end, I want to display the adjusted regression models FE/RE for 3 model options on a page. Each page will have one of the four data options. I want to output this in Latex. So in this scenario, I need a variables variable approach. I am trying eval(
, parse(
, substitute(
, assign(
.
so consider I have a variable in R mDat.total
that contains the data I need for a regression. I also have mDat.hi
, mDat.mid
, mDat.low
. These 4 elements, I can represent as a list of strings pointing to the variable:
d = c("mDat.total","mDat.low","mDat.mid","mDat.hi"); # data loop
Similarly, for the models, I have formula datatypes (using formula,Formula,pForumla such as model.main = emp~wage+capital|lag(wage,1)+capital
:
m = c("model.main","model.lone","model.interaction"); # model loop
I want to loop over i in d, j in m, and perform a bunch of regressions.
for(i in 1:length(d))
{
myData = $$d[i];
for j in 1:length(m))
{
myModel = $$m[j];
... ### do stuff with myData, myModel
that has been assigned the values of myData (a data frame)
and myModel (a model specification)
For i=1;j=1
, myData evaluates to be the mDat.total
dataframe, and myModel evaluates to be the model.main
Ideally, I want a standalone function using R that behaves like $$ (e.g., in above pseudo code, replace $$ with a function doubleEvaluate(x) or VariableVariable(x).
Thanks in advance.
monte
{x:
See Question&Answers more detail:
os