Re: [R] How to invert a list ?
Do not worry, I found the solution. I had a list, as follows : x - list() x$i - 5 x$j - 9 x$k - 15 names(x$i) - a names(x$j) - b names(x$k) - b And I wanted to obtain a list, as follows : $a i 5 $b j k 9 15 My solution : n - sapply(x, names) m - sapply(x, c, use.names = FALSE) tapply(m, n, c) Thanks for answers. Carlos 2010/8/11 Wu Gong w...@mtmail.mtsu.edu: Hi Carlos, I don't know what kind of data you really have. It's would be helpful if you give a sample data. You really don't need to use sapply. R can assign names through vectors: names(y) - names(x) Or: names(y) - c(NameA,NameB) Regards, Wu From: Carlos Petti [carlos.pe...@gmail.com] Sent: Wednesday, August 11, 2010 5:39 AM To: Wu Gong Cc: r-help@r-project.org Subject: Re: [R] How to invert a list ? Or rather : n - sapply(x, function(i) names(i)) tapply(x, n, names) 2010/8/11 Carlos Petti carlos.pe...@gmail.com: A beginning of solution... n - sapply(x, function(i) names(i)) tapply(x, n, c) 2010/8/11 Carlos Petti carlos.pe...@gmail.com: Thanks. On the other hand, I try to obtain the same result but from this list : x - list() x$i - 5 x$j - 9 x$k - 15 names(x$i) - a names(x$j) - b names(x$k) - b Thanks in advance, Carlos 2010/8/10 Wu Gong w...@mtmail.mtsu.edu: Hi Carlos, I give a handmade code, hope it helps. y - list() y$a - a y$b - c(b,c) names(y$a) - i names(y$b) - c(j,k) Carlos Petti wrote: a - 5 names(a) - a b - 9 names(b) - b c - 15 names(c) - c x - list(i = a, j = b, j = c) - A R learner. -- View this message in context: http://r.789695.n4.nabble.com/How-to-invert-a-list-tp2320108p2320433.html Sent from the R help mailing list archive at Nabble.com. __ 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.
Re: [R] How to invert a list ?
Thanks. On the other hand, I try to obtain the same result but from this list : x - list() x$i - 5 x$j - 9 x$k - 15 names(x$i) - a names(x$j) - b names(x$k) - b Thanks in advance, Carlos 2010/8/10 Wu Gong w...@mtmail.mtsu.edu: Hi Carlos, I give a handmade code, hope it helps. y - list() y$a - a y$b - c(b,c) names(y$a) - i names(y$b) - c(j,k) Carlos Petti wrote: a - 5 names(a) - a b - 9 names(b) - b c - 15 names(c) - c x - list(i = a, j = b, j = c) - A R learner. -- View this message in context: http://r.789695.n4.nabble.com/How-to-invert-a-list-tp2320108p2320433.html Sent from the R help mailing list archive at Nabble.com. __ 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.
Re: [R] How to invert a list ?
A beginning of solution... n - sapply(x, function(i) names(i)) tapply(x, n, c) 2010/8/11 Carlos Petti carlos.pe...@gmail.com: Thanks. On the other hand, I try to obtain the same result but from this list : x - list() x$i - 5 x$j - 9 x$k - 15 names(x$i) - a names(x$j) - b names(x$k) - b Thanks in advance, Carlos 2010/8/10 Wu Gong w...@mtmail.mtsu.edu: Hi Carlos, I give a handmade code, hope it helps. y - list() y$a - a y$b - c(b,c) names(y$a) - i names(y$b) - c(j,k) Carlos Petti wrote: a - 5 names(a) - a b - 9 names(b) - b c - 15 names(c) - c x - list(i = a, j = b, j = c) - A R learner. -- View this message in context: http://r.789695.n4.nabble.com/How-to-invert-a-list-tp2320108p2320433.html Sent from the R help mailing list archive at Nabble.com. __ 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.
Re: [R] How to invert a list ?
Or rather : n - sapply(x, function(i) names(i)) tapply(x, n, names) 2010/8/11 Carlos Petti carlos.pe...@gmail.com: A beginning of solution... n - sapply(x, function(i) names(i)) tapply(x, n, c) 2010/8/11 Carlos Petti carlos.pe...@gmail.com: Thanks. On the other hand, I try to obtain the same result but from this list : x - list() x$i - 5 x$j - 9 x$k - 15 names(x$i) - a names(x$j) - b names(x$k) - b Thanks in advance, Carlos 2010/8/10 Wu Gong w...@mtmail.mtsu.edu: Hi Carlos, I give a handmade code, hope it helps. y - list() y$a - a y$b - c(b,c) names(y$a) - i names(y$b) - c(j,k) Carlos Petti wrote: a - 5 names(a) - a b - 9 names(b) - b c - 15 names(c) - c x - list(i = a, j = b, j = c) - A R learner. -- View this message in context: http://r.789695.n4.nabble.com/How-to-invert-a-list-tp2320108p2320433.html Sent from the R help mailing list archive at Nabble.com. __ 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.
Re: [R] How to invert a list ?
Here is one way: xst - stack(x) let - letters[cumsum(duplicated(match(xst$ind, letters))) + match(xst$ind, letters)] with(xst, structure(split(structure(values, names = let), ind), .Names = row.names(xst)[1:length(unique(ind))])) On Tue, Aug 10, 2010 at 1:58 PM, Carlos Petti carlos.pe...@gmail.comwrote: Dear list, I have a list, as follows : a - 5 names(a) - a b - 9 names(b) - b c - 15 names(c) - c x - list(i = a, j = b, j = c) I want to invert the list, like this : $a i 5 $b j k 9 15 I do not find a clean solution. Could anyone give me elegant ideas ? Thanks in advance, Carlos __ 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. -- Henrique Dallazuanna Curitiba-Paraná-Brasil 25° 25' 40 S 49° 16' 22 O [[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.
Re: [R] How to invert a list ?
Hi Carlos, I give a handmade code, hope it helps. y - list() y$a - a y$b - c(b,c) names(y$a) - i names(y$b) - c(j,k) Carlos Petti wrote: a - 5 names(a) - a b - 9 names(b) - b c - 15 names(c) - c x - list(i = a, j = b, j = c) - A R learner. -- View this message in context: http://r.789695.n4.nabble.com/How-to-invert-a-list-tp2320108p2320433.html Sent from the R help mailing list archive at Nabble.com. __ 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.