[R] Extracting lists in the dataframe $ format

Douglas Bates bates at stat.wisc.edu
Mon Jun 4 23:56:15 CEST 2007


On 6/4/07, 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

but df[[1]] is the first column of df in its native form.

I think of the distinction as like the difference between an element
of a set, which is what the "[[" function returns, and the subset
consisting of a single element, which is what the "[" function
returns.



More information about the R-help mailing list