[R] Why is my data always imported as a list?

David Winsemius dwinsemius at comcast.net
Mon Jun 11 18:42:07 CEST 2012


On Jun 11, 2012, at 12:29 PM, Samantha Sifleet wrote:

> Hi,
>
> I am a relatively new to R. So, this is probably a really basic  
> issue that
> I keep hitting.
>
> I read my data into R using the read.csv command:
>
> x = rep("numeric", 3)
> CB_un=read.csv("Corn_Belt_unirr.csv", header=TRUE,  
> colClasses=c("factor",
> x))
>
> # I have clearly told R that I have one factor variable and 3 numeric
> variables in this table.
> #but if I try to do anything with them, I get an error
>
> boxplot(CB_un["Value"]~CB_un["State.Fips"])
>
> Error in model.frame.default(formula = CB_un["Value"] ~
> CB_un["State.Fips"]) :
>  invalid type (list) for variable 'CB_un["Value"]'

If you were steadfastly intent on using direct extraction in the  
formula, then this would be the way to do so:

boxplot(CB_un[["Value"]]~CB_un[["State.Fips"]])

Beter would be to use the formula interface the way it was designed to  
operate:

boxplot( Value ~ State.Fips, data=CB_un)

-- 
David.

>
> # Because  these variables are all stored as lists.
> #So, I have to unpack them.
>
> CB_unirr_rent<-as.numeric(unlist(CB_un["Value"]))
> CB_unirr_State<-as.factor(unlist(CB_un["State.Fips"]))
>
> #before I can do anything with them
>
> boxplot(CB_unirr_rent~CB_unirr_State)
>
> Is there a reason my data is always imported as lists?

It's in a dataframe ..... dataframes are lists


>  Is there a way to
> skip this upacking step?
>
> Thanks,
>
> Sam
> 	[[alternative HTML version deleted]]
-- 
David Winsemius, MD
West Hartford, CT



More information about the R-help mailing list