[R] Extracting lists in the dataframe $ format

John Kane jrkrideau at yahoo.ca
Tue Jun 5 19:19:50 CEST 2007


I think your indexing is wrong in the function. Note
the tble[a] rather than tble[,a]. 

Try:
regression=function(tble,a,b)
 {
            plot.new()
            plot(tble[,a]~tble[,b])
            lmm=lm(tble[,a]~tble[,b])
            abline(lmm)
            anova(lmm)
 }



--- Stan Hopkins <stanhopkins at comcast.net> wrote:

> I'm new to R and am trying to extract the factors of
> a dataframe using numeric indices (e.g. df[1]) that
> are input to a function definition instead of the
> other types of references (e.g. df$out).  df[1] is a
> list(?) whose class is "dataframe".  These indexed
> lists can be printed successfuly but are not
> agreeable to the plot() and lm() functions shown
> below as are their df$out references.  Reading the
> documentation for plot and lm hasn't helped yet. 
> Thanks in advance - Stan.
> 
> > df=data.frame(out=1:4*3,pred1=1:4,pred2=1:4*2)
> > regression=function(tble,a,b) 
> + {
> +            plot.new()
> +            plot(tble[a]~tble[b])
> +            lmm=lm(tble[a]~tble[b])
> +            abline(lmm)
> +            anova(lmm)
> + }
> > df[1]
>   out
> 1   3
> 2   6
> 3   9
> 4  12
> > df
>   out pred1 pred2
> 1   3     1     2
> 2   6     2     4
> 3   9     3     6
> 4  12     4     8
> > regression(df,1,3)
> Error in model.frame(formula, rownames, variables,
> varnames, extras, extranames,  : 
>         invalid type (list) for variable 'tble[a]'



More information about the R-help mailing list