Hi: Below works but it's extremely ugly and overly complicated. i'm sure
someone else will send you something better and I'll be waiting also.
Also, the way I named the rows and columns works for below but it won't
hold in the general case if you don't have nice ordered names like
you do below. So, use it until we something better.
DF <- read.table(textConnection("name color likes
1 sally red 0
2 sally blue 1
3 sally green 1
4 jake red 0
5 jake blue 1
6 jake green 1
7 tom red 1
8 tom blue 0
9 tom green 0"),header=TRUE,stringsAsFactors=FALSE)
mat <- matrix(sapply(1:nrow(DF),function(.row) {
DF[.row,3]
}),nrow=length(unique(DF$name)),byrow=TRUE,dimnames=list(c(unique(DF$name)),c(unique(DF$color))))
print(mat)
On Wed, Mar 11, 2009 at 12:42 AM, Jennifer Brea wrote:
If I have a dataframe which is organized like this:
name color likes?
1 sally red 0
2 sally blue 1
3 sally green 1
4 jake red 0
5 jake blue 1
6 jake green 1
7 tom red 1
8 tom blue 0
9 tom green 0
And I want to create a matrix in the form:
red blue green
sally 0 1 1
jake 0 1 1
tom 1 0 0
Are there any built-in commands that might help me do this? Also, I
can't assume that there is an observation for every person-color. In
other words, in the original dataset, there might be some colors for
which sally offered no opinion. In some cases, this may be
represented by NA, in others, it may mean that no row exists for sally
for that color.
Thank you!
______________________________________________
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.
______________________________________________
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.