Re: [R] How to invert a list ?

2010-08-16 Thread Carlos Petti
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 ?

2010-08-11 Thread Carlos Petti
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 ?

2010-08-11 Thread Carlos Petti
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 ?

2010-08-11 Thread Carlos Petti
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 ?

2010-08-10 Thread Henrique Dallazuanna
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 ?

2010-08-10 Thread Wu Gong

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.