[R] smart way to turn a vector into a matrix
Erik Iverson
eriki at ccbr.umn.edu
Fri Mar 26 20:10:21 CET 2010
Hello,
anna wrote:
> Hello guys, I am working on a matrix which looks like this one:
>> initialMatrix <-
>> rbind(cbind(rep("A",3),seq(1,3)),cbind(rep("B",4),seq(1,4)),cbind(rep("C",3),seq(1,3)))
>> initialMatrix
> [,1] [,2]
> [1,] "A" "1"
> [2,] "A" "2"
> [3,] "A" "3"
> [4,] "B" "1"
> [5,] "B" "2"
> [6,] "B" "3"
> [7,] "B" "4"
> [8,] "C" "1"
> [9,] "C" "2"
> [10,] "C" "3"
>
> and I would like to turn it into a list that looks like that but don't know
> which operation to apply on it:
>> myList<-list()
>> myList[[1]]<-cbind(rep("A",3),seq(1,3))
>> myList[[2]]<-cbind(rep("B",4),seq(1,4))
>> myList[[3]]<-cbind(rep("C",3),seq(1,3))
>> myList
> [[1]]
> [,1] [,2]
> [1,] "A" "1"
> [2,] "A" "2"
> [3,] "A" "3"
>
> [[2]]
> [,1] [,2]
> [1,] "B" "1"
> [2,] "B" "2"
> [3,] "B" "3"
> [4,] "B" "4"
>
> [[3]]
> [,1] [,2]
> [1,] "C" "1"
> [2,] "C" "2"
> [3,] "C" "3"
> I thought about a using which and lapply but didn't get to a solution.
> There is always a smart way to do it I'm sure but I'm not finding it...Can
> somebody help please?
sapply(split(initialMatrix, f = initialMatrix[,1]), matrix, ncol = 2)
More information about the R-help
mailing list