Dat:

1. you can use as.matrix to convert data.frame to matrix;
2. it is likely that the internal representation of your data.frame may not be numerical value; matrix can only take on numeric.



--- On Thu, 5/26/11, Dat Mai <dat.d.mai@gmail.com> wrote:

From: Dat Mai <dat.d.mai@gmail.com>
Subject: [R]  matrix not working
To: r-help@r-project.org
Date: Thursday, May 26, 2011, 12:24 PM

Hello All,

I'm trying to create a matrix from a dataframe (let's call it df):
......a......b.....c.....d
a   inputs      output
b   inputs      output
c   inputs      output
d   inputs      output
e   inputs      output

The inputs are represented by columns a and b
The outputs are represented by columns c and d, but the only outputs are
those from column d
- some values from column d are NA
- column d was created with the code:

df$d=rank(df$c, na.last="keep")

#----------R Code---------#
item=unique(df$a)
n=length(list)

r=matrix(data=NA,nrow=n, ncol=n, dimnames=list(PRR1=item, PRR2=item))

for(j in 2:ln)
{
  for(i in 1:(j-1))
  {
    input1=rownames(r)[i]
    input2=colnames(r)[j]

    q=df[(df$a==input1 & df$b==input2), "d"]

    if(length(q)==0)
    {
      q=df[(df$a==input2 & df$b==input1), "d"]
    }

    if(length(q)==0)
    {
      q=NA
    }

    r[j,i]=q
    r[i,j]=q
    r[j,j]=q
  }
}

The result is a matrix with the appropriate dimensions, but everything is
filled with NA instead of the rankings of the various combinations. I'd like
for the matrix to be filled with the ranking values--what have I done wrong?
-- 
Best,
Dat Mai
PhD Rotation Student
Albert Einstein College of Medicine

    [[alternative HTML version deleted]]

______________________________________________
R-help@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.

	[[alternative HTML version deleted]]

