[R] Converting a data frame to matrix
Petr PIKAL
petr.pikal at precheza.cz
Fri Mar 28 11:55:40 CET 2008
Hi
r-help-bounces at r-project.org napsal dne 28.03.2008 10:18:20:
> Adrian Johnson wrote:
> > Hello:
> >
> > I have a tab delim file with 100 rows and 100 columns.
> >
> > I have numerical values in this table. What I want is to create an
image
Probably not. See below.
> > color map with color gradation.
> >
> > my values range from -5 to 0. max value is 0.
> >
> > to acheive this, I need to convert my data.frame into matrix.
> >
> > I tried following :
> >
> > mydf <- read.table('mytable',sep='\t',header=T)
> > mydf1 <- mydf[,2:100]
> > colnames(mydf1) <- as.character(mydf[,1])
It should be probably
rownames(mydf1) <- as.character(mydf[,1])
mydf<-rnorm(100*100)
mydf<-matrix(mydf, 100,100)
mydf<-data.frame(mydf)
mydf1<-mydf[,2:100]
colnames(mydf1)<-as.character(mydf[,1])
Error in names(x) <- value :
'names' attribute [100] must be the same length as the vector [99]
> >
> > here comes the trouble:
> >
> > mymat <- as.matrix(mydf1)
> >
> > -- numerical values become character values. -1 becomes "-1"
If you had all values in data frame really numeric it shall stay as
numeric also in your matrix. Try
str(mydf1)
and you will probably find out that some variables are factors/character.
Therefore as.matrix transfers **all** values to character as matrix can
not mix data of various type.
> >
> > mymat <- data.matrix(mydf1)
> >
> > -- whole matrix is filled with 1,2 and 3.
> >
> > Is there any other way I can do this.
> >
> > say row names are city schools
> > colnames are student names
> >
> Hi Adrian,
> Have you looked at color2d.matplot in the plotrix package?
>
> Jim
>
> ______________________________________________
> 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