Thank you David for the code, as I am learning about xtabs operation. That works great too ;)
On Tue, Jun 6, 2017 at 7:34 AM, David L Carlson <dcarl...@tamu.edu> wrote: > Here's another approach: > > N <- data.frame(N=c("n1","n2","n3","n4")) > M <- data.frame(M=c("m1","m2","m3","m4","m5")) > C <- data.frame(n=c("n1","n2","n3"), m=c("m1","m1","m3"), > I=c(100,300,400)) > > # Rebuild the factors using M and N > C$m <- factor(as.character(C$m), levels=levels(M$M)) > C$n <- factor(as.character(C$n), levels=levels(N$N)) > MN <- xtabs(I~m+n, C) > print(MN, zero.print="-") > # n > # m n1 n2 n3 n4 > # m1 100 300 - - > # m2 - - - - > # m3 - - 400 - > # m4 - - - - > # m5 - - - - > > class(MN) > # [1] "xtabs" "table" > # MN is a table. If you want a data.frame > MN <- as.data.frame.matrix(MN) > class(MN) > # [1] "data.frame" > > ------------------------------------- > David L Carlson > Department of Anthropology > Texas A&M University > College Station, TX 77840-4352 > > -----Original Message----- > From: R-help [mailto:r-help-boun...@r-project.org] On Behalf Of Jim Lemon > Sent: Tuesday, June 6, 2017 6:02 AM > To: Bogdan Tanasa <tan...@gmail.com>; r-help mailing list < > r-help@r-project.org> > Subject: Re: [R] integrating 2 lists and a data frame in R > > Hi Bogdan, > Kinda messy, but: > > N <- data.frame(N=c("n1","n2","n3","n4")) > M <- data.frame(M=c("m1","m2","m3","m4","m5")) > C <- data.frame(n=c("n1","n2","n3"), m=c("m1","m1","m3"), > I=c(100,300,400)) > MN<-as.data.frame(matrix(NA,nrow=length(N[,1]),ncol=length(M[,1]))) > names(MN)<-M[,1] > rownames(MN)<-N[,1] > C[,1]<-as.character(C[,1]) > C[,2]<-as.character(C[,2]) > for(row in 1:dim(C)[1]) MN[C[row,1],C[row,2]]<-C[row,3] > > Jim > > On Tue, Jun 6, 2017 at 3:51 PM, Bogdan Tanasa <tan...@gmail.com> wrote: > > Dear Bert, > > > > thank you for your response. here it is the piece of R code : given 3 > data > > frames below --- > > > > N <- data.frame(N=c("n1","n2","n3","n4")) > > > > M <- data.frame(M=c("m1","m2","m3","m4","m5")) > > > > C <- data.frame(n=c("n1","n2","n3"), m=c("m1","m1","m3"), > I=c(100,300,400)) > > > > how shall I integrate N, and M, and C in such a way that at the end we > have > > a data frame with : > > > > > > - list N as the columns names > > - list M as the rows names > > - the values in the cells of N * M, corresponding to the numerical > > values in the data frame C. > > > > more precisely, the result shall be : > > > > n1 n2 n3 n4 > > m1 100 200 - - > > m2 - - - - > > m3 - - 300 - > > m4 - - - - > > m5 - - - - > > > > thank you ! > > > > > > On Mon, Jun 5, 2017 at 6:57 PM, Bert Gunter <bgunter.4...@gmail.com> > wrote: > > > >> Reproducible example, please. -- In particular, what exactly does C look > >> ilike? > >> > >> (You should know this by now). > >> > >> -- Bert > >> Bert Gunter > >> > >> "The trouble with having an open mind is that people keep coming along > >> and sticking things into it." > >> -- Opus (aka Berkeley Breathed in his "Bloom County" comic strip ) > >> > >> > >> On Mon, Jun 5, 2017 at 6:45 PM, Bogdan Tanasa <tan...@gmail.com> wrote: > >> > Dear all, > >> > > >> > please could you advise on the R code I could use in order to do the > >> > following operation : > >> > > >> > a. -- I have 2 lists of "genome coordinates" : a list is composed by > >> > numbers that represent genome coordinates; > >> > > >> > let's say list N : > >> > > >> > n1 > >> > > >> > n2 > >> > > >> > n3 > >> > > >> > n4 > >> > > >> > and a list M: > >> > > >> > m1 > >> > > >> > m2 > >> > > >> > m3 > >> > > >> > m4 > >> > > >> > m5 > >> > > >> > 2 -- and a data frame C, where for some pairs of coordinates (n,m) > from > >> the > >> > lists above, we have a numerical intensity; > >> > > >> > for example : > >> > > >> > n1; m1; 100 > >> > > >> > n1; m2; 300 > >> > > >> > The question would be : what is the most efficient R code I could use > in > >> > order to integrate the list N, the list M, and the data frame C, in > order > >> > to obtain a DATA FRAME, > >> > > >> > -- list N as the columns names > >> > -- list M as the rows names > >> > -- the values in the cells of N * M, corresponding to the numerical > >> values > >> > in the data frame C. > >> > > >> > A little example would be : > >> > > >> > n1 n2 n3 n4 > >> > > >> > m1 100 - - - > >> > > >> > m2 300 - - - > >> > > >> > m3 - - - - > >> > > >> > m4 - - - - > >> > > >> > m5 - - - - > >> > I wrote a script in perl, although i would like to do this in R > >> > Many thanks ;) > >> > -- bogdan > >> > > >> > [[alternative HTML version deleted]] > >> > > >> > ______________________________________________ > >> > R-help@r-project.org mailing list -- To UNSUBSCRIBE and more, see > >> > 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]] > > > > ______________________________________________ > > R-help@r-project.org mailing list -- To UNSUBSCRIBE and more, see > > 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 -- To UNSUBSCRIBE and more, see > 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]] ______________________________________________ R-help@r-project.org mailing list -- To UNSUBSCRIBE and more, see 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.