integrating 2 lists and a data frame in R
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-bounces at r-project.org] On Behalf Of Jim Lemon
Sent: Tuesday, June 6, 2017 6:02 AM
To: Bogdan Tanasa <tanasa at gmail.com>; r-help mailing list <r-help at 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 <tanasa at 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.4567 at 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 <tanasa at 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 at 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 at 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 at 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.