[R] getting numeric arrays from data frame

John Fox jfox at mcmaster.ca
Mon Apr 7 13:28:08 CEST 2008


Dear Mark,

A data frame is a list, and thus foo[5] returns a one-element list, while
foo[[5]] returns a vector. One can also subscript a data frame as a matrix,
so foo[1, 5] returns the element in the 1st row, 5th column, foo[,5] returns
the 5th column as a vector, and foo[,c(3, 5)] returns a two-column data
frame (and is equivalent to foo[c(3, 5)]), while foo[[c(3, 5)]] returns the
element in column 3, row 5 (i.e., the 5th element of the 3rd list element).

I hope this helps,
 John

--------------------------------
John Fox, Professor
Department of Sociology
McMaster University
Hamilton, Ontario, Canada L8S 4M4
905-525-9140x23604
http://socserv.mcmaster.ca/jfox

> -----Original Message-----
> From: r-help-bounces at r-project.org [mailto:r-help-bounces at r-
> project.org] On Behalf Of Mark Farnell
> Sent: April-06-08 11:15 PM
> To: r-help at r-project.org
> Subject: [R] getting numeric arrays from data frame
> 
> Currently I invoke:
> 
> foo <- read.table("foo.data", header=TRUE)
> 
> to read a table into foo
> 
> Then when I try to plot a histogram out of the 5th column of foo:
> 
> hist(foo[5])
> 
> It fails and it says:
> 
> Error in hist.default(foo[5]) : 'x' must be numeric
> 
> Then I tried:
> 
> >typeof(foo[5])
> [1] "List"
> 
> So how can I get an numeric array out of one of the columns?
> 
> Also suppose if the dataframe foo (above) has eight columns and I want
> to make an x-y scatter plot on two of the columns, how can I extract
> these two specific columns?
> 
> Thanks
> 
> Mark
> 
> ______________________________________________
> R-help at r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-help
> PLEASE do read the posting guide http://www.R-project.org/posting-
> guide.html
> and provide commented, minimal, self-contained, reproducible code.



More information about the R-help mailing list