Re: [R] R: LIST function and LOOPS

2005-03-12 Thread Uwe Ligges
Clark Allan wrote:
hi 

thanx for the help. i dont want to use matrices. i solve my problem, see
the example below.
the set.seed is used because in my actual application i need to generate
INDEPENDENT variables. will this ensure that the variables are
independent? 
Why do you want to set.seed() inside the loop?
Just set it once at the beginning of your simulation in order to get 
reproducible results - you can assume independence anyway.
Or maybe I am missing the point why you are going to set.seed() inside 
the loop.

Uwe Ligges

z3-function(w)
{
for (i in 1:w)
{
ss-0
   for (j in 1:5)
   {
set.seed(j+1+(i-1)*6)
r-rnorm(1)
ss-ss+r
a-list(ss=ss,r=r)
   }
print(paste( i=,i,))
print(a)
}
}
z3(3)


z3(3)
[1]  i= 1  
$ss
[1] -2.213343
$r
[1] 0.269606
[1]  i= 2  
$ss
[1] -2.904235
$r
[1] -1.480568
[1]  i= 3  
$ss
[1] -0.01516304
$r
[1] 0.9264592
thanx again
***
allan
###
###
###
###
###
###
Adaikalavan Ramasamy wrote:
You will need to capture the value of ss at the end of each 'i' as such
z4 -function(w){
 output - numeric(w)
 for (i in 1:w){
   set.seed(i+6)  # this is redundant line
   ss-0
   for (j in 1:5){
 set.seed(j+1+(i-1)*6)
 r-rnorm(1)
 ss-ss+r
   }
   output[i] - ss
 }
 return(output)
}
BTW, I do not think it is a good idea to set.seed() so many times.
To answer you more general question, see if the following is useful.
I am trying to simulate 'n' values from a standard normal distribution
but 'n' is random variable itself.
f -function(w, lambda=3){
 tmp - list(NULL)
 for (i in 1:w){
   n - 1 + rpois(1, lambda=lambda)  # number of simulation required
   tmp[[ i ]]  - rnorm(n)
 }
 # flatten the list into a ragged matrix
 out.lengths   - sapply(tmp, length)
 out   - matrix( nr=w, nc=max( out.lengths ) )
 rownames(out) - paste(w =, 1:w)
 for(i in 1:w) out[i, 1:out.lengths[i] ] - tmp[[i]]
 return(out)
}
f(6, lambda=3)
It is not very elegant but I hope that helps you out somehow.
Regards, Adai
On Thu, 2005-03-10 at 10:16 +0200, Clark Allan wrote:
hi all
another simple question.
i've written a dummy program so that you get the concept. (the code
could be simplfied such that there are no loops. but lets leave the
loops in for now.)
z1-function(w)
{
for (i in 1:w)
{
set.seed(i+6)
ss-0
 for (j in 1:5)
 {
 set.seed(j+1+(i-1)*6)
 r-rnorm(1)
 ss-ss+r
 }
list(ss=ss)
}
}
check.1-z1(3)
check.1
the results is:
$ss
[1] -0.01516304
what i want is something that looks like this:
j=1
$ss
[1] -2.213343
j=2
$ss
[1] -2.904235
j=3
$ss
[1] -0.01516304
i know that i could use the print command. (see z2)
z2-function(w)
{
for (i in 1:w)
{
set.seed(i+6)
ss-0
 for (j in 1:5)
 {
 set.seed(j+1+(i-1)*6)
 r-rnorm(1)
 ss-ss+r
 }
print(ss)
}
}
check.2-z2(3)
check.2

check.2-z2(3)
[1] -2.213343
[1] -2.904235
[1] -0.01516304
check.2
[1] -0.01516304
the problem with z2 is that only the last value is saved.
what i could do is use matrices like the following: (but i dont want to
do this AND WOULD PREFER TO USE list.)
z3-function(w)
{
results.-matrix(nrow=w,ncol=1)
colnames(results.)-c(ss)
for (i in 1:w)
{
set.seed(i+6)
ss-0
 for (j in 1:5)
 {
 set.seed(j+1+(i-1)*6)
 r-rnorm(1)
 ss-ss+r
 }
results.[i,1]-ss
}
results.
}
check.3-z3(3)
check.3

check.3
 ss
[1,] -2.21334260
[2,] -2.90423463
[3,] -0.01516304
what if i have a new program (something different) and i want the
following:
j=1
$a
1
2
3
$b
1
2
3
4
5
$c
1
###
j=2
$a
11
21
31
$b
11
21
31
41
51
$c
11
###
j=3
$a
21
22
32
$b
21
22
32
42
52
$c
21
MATRICES SEEMS TO BE A GOOD WAY OF DOING THIS (but then you would have
to set up three matrices, one for a,b and c). BUT WHAT IF I WANT TO USE
THE LIST FUNCTION? i.e. there is a list in the first loop that i want to
display!
sorry for the long mail.
***
ALLAN
__ R-help@stat.math.ethz.ch mailing 
list https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting 
guide! http://www.R-project.org/posting-guide.html

__
R-help@stat.math.ethz.ch mailing list

Re: [R] R: LIST function and LOOPS

2005-03-11 Thread Clark Allan
hi 

thanx for the help. i dont want to use matrices. i solve my problem, see
the example below.

the set.seed is used because in my actual application i need to generate
INDEPENDENT variables. will this ensure that the variables are
independent? 


z3-function(w)
{
for (i in 1:w)
{
ss-0
   for (j in 1:5)
   {
set.seed(j+1+(i-1)*6)
r-rnorm(1)
ss-ss+r
a-list(ss=ss,r=r)
   }
print(paste( i=,i,))
print(a)
}
}
z3(3)



 z3(3)
[1]  i= 1  
$ss
[1] -2.213343

$r
[1] 0.269606

[1]  i= 2  
$ss
[1] -2.904235

$r
[1] -1.480568

[1]  i= 3  
$ss
[1] -0.01516304

$r
[1] 0.9264592


thanx again

***
allan

###
###
###
###
###
###


Adaikalavan Ramasamy wrote:
 
 You will need to capture the value of ss at the end of each 'i' as such
 
 z4 -function(w){
 
   output - numeric(w)
 
   for (i in 1:w){
 
 set.seed(i+6)  # this is redundant line
 ss-0
 
 for (j in 1:5){
   set.seed(j+1+(i-1)*6)
   r-rnorm(1)
   ss-ss+r
 }
 
 output[i] - ss
   }
   return(output)
 }
 
 BTW, I do not think it is a good idea to set.seed() so many times.
 
 To answer you more general question, see if the following is useful.
 I am trying to simulate 'n' values from a standard normal distribution
 but 'n' is random variable itself.
 
 f -function(w, lambda=3){
 
   tmp - list(NULL)
 
   for (i in 1:w){
 n - 1 + rpois(1, lambda=lambda)  # number of simulation required
 tmp[[ i ]]  - rnorm(n)
   }
 
   # flatten the list into a ragged matrix
   out.lengths   - sapply(tmp, length)
   out   - matrix( nr=w, nc=max( out.lengths ) )
   rownames(out) - paste(w =, 1:w)
   for(i in 1:w) out[i, 1:out.lengths[i] ] - tmp[[i]]
 
   return(out)
 }
 
 f(6, lambda=3)
 
 It is not very elegant but I hope that helps you out somehow.
 
 Regards, Adai
 
 On Thu, 2005-03-10 at 10:16 +0200, Clark Allan wrote:
  hi all
 
  another simple question.
 
  i've written a dummy program so that you get the concept. (the code
  could be simplfied such that there are no loops. but lets leave the
  loops in for now.)
 
  z1-function(w)
  {
  for (i in 1:w)
  {
  set.seed(i+6)
  ss-0
for (j in 1:5)
{
set.seed(j+1+(i-1)*6)
r-rnorm(1)
ss-ss+r
}
  list(ss=ss)
  }
  }
  check.1-z1(3)
  check.1
 
  the results is:
  $ss
  [1] -0.01516304
 
 
  what i want is something that looks like this:
 
  j=1
  $ss
  [1] -2.213343
 
  j=2
  $ss
  [1] -2.904235
 
  j=3
  $ss
  [1] -0.01516304
 
 
  i know that i could use the print command. (see z2)
 
  z2-function(w)
  {
  for (i in 1:w)
  {
  set.seed(i+6)
  ss-0
for (j in 1:5)
{
set.seed(j+1+(i-1)*6)
r-rnorm(1)
ss-ss+r
}
  print(ss)
  }
  }
  check.2-z2(3)
  check.2
 
   check.2-z2(3)
  [1] -2.213343
  [1] -2.904235
  [1] -0.01516304
   check.2
  [1] -0.01516304
 
  the problem with z2 is that only the last value is saved.
 
 
  what i could do is use matrices like the following: (but i dont want to
  do this AND WOULD PREFER TO USE list.)
 
  z3-function(w)
  {
  results.-matrix(nrow=w,ncol=1)
  colnames(results.)-c(ss)
  for (i in 1:w)
  {
  set.seed(i+6)
  ss-0
for (j in 1:5)
{
set.seed(j+1+(i-1)*6)
r-rnorm(1)
ss-ss+r
}
  results.[i,1]-ss
  }
  results.
  }
  check.3-z3(3)
  check.3
 
   check.3
ss
  [1,] -2.21334260
  [2,] -2.90423463
  [3,] -0.01516304
 
  what if i have a new program (something different) and i want the
  following:
 
  j=1
  $a
  1
  2
  3
 
  $b
  1
  2
  3
  4
  5
 
  $c
  1
 
 
  ###
  j=2
  $a
  11
  21
  31
 
  $b
  11
  21
  31
  41
  51
 
  $c
  11
 
  ###
  j=3
  $a
  21
  22
  32
 
  $b
  21
  22
  32
  42
  52
 
  $c
  21
 
  MATRICES SEEMS TO BE A GOOD WAY OF DOING THIS (but then you would have
  to set up three matrices, one for a,b and c). BUT WHAT IF I WANT TO USE
  THE LIST FUNCTION? i.e. there is a list in the first loop that i want to
  display!
 
  sorry for the long mail.
 
  ***
  ALLAN
  __ R-help@stat.math.ethz.ch 
  mailing list https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read 
  the posting guide! 

[R] R: LIST function and LOOPS

2005-03-10 Thread Clark Allan
hi all

another simple question.

i've written a dummy program so that you get the concept. (the code
could be simplfied such that there are no loops. but lets leave the
loops in for now.)

z1-function(w)
{
for (i in 1:w)
{
set.seed(i+6)
ss-0
for (j in 1:5)
{
set.seed(j+1+(i-1)*6)
r-rnorm(1)
ss-ss+r
}
list(ss=ss)
}
}
check.1-z1(3)
check.1

the results is:
$ss
[1] -0.01516304


what i want is something that looks like this:

j=1
$ss
[1] -2.213343

j=2
$ss
[1] -2.904235

j=3
$ss
[1] -0.01516304


i know that i could use the print command. (see z2)

z2-function(w)
{
for (i in 1:w)
{
set.seed(i+6)
ss-0
for (j in 1:5)
{
set.seed(j+1+(i-1)*6)
r-rnorm(1)
ss-ss+r
}
print(ss)
}
}
check.2-z2(3)
check.2

 check.2-z2(3)
[1] -2.213343
[1] -2.904235
[1] -0.01516304
 check.2
[1] -0.01516304

the problem with z2 is that only the last value is saved.


what i could do is use matrices like the following: (but i dont want to
do this AND WOULD PREFER TO USE list.)

z3-function(w)
{
results.-matrix(nrow=w,ncol=1)
colnames(results.)-c(ss)
for (i in 1:w)
{
set.seed(i+6)
ss-0
for (j in 1:5)
{
set.seed(j+1+(i-1)*6)
r-rnorm(1)
ss-ss+r
}
results.[i,1]-ss
}
results.
}
check.3-z3(3)
check.3

 check.3
  ss
[1,] -2.21334260
[2,] -2.90423463
[3,] -0.01516304

what if i have a new program (something different) and i want the
following:

j=1
$a
1
2
3

$b
1
2
3
4
5

$c
1


###
j=2
$a
11
21
31

$b
11
21
31
41
51

$c
11

###
j=3
$a
21
22
32

$b
21
22
32
42
52

$c
21

MATRICES SEEMS TO BE A GOOD WAY OF DOING THIS (but then you would have
to set up three matrices, one for a,b and c). BUT WHAT IF I WANT TO USE
THE LIST FUNCTION? i.e. there is a list in the first loop that i want to
display!

sorry for the long mail.

***
ALLAN__
R-help@stat.math.ethz.ch mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide! http://www.R-project.org/posting-guide.html

Re: [R] R: LIST function and LOOPS

2005-03-10 Thread Adaikalavan Ramasamy
You will need to capture the value of ss at the end of each 'i' as such

z4 -function(w){

  output - numeric(w)
  
  for (i in 1:w){

set.seed(i+6)  # this is redundant line
ss-0

for (j in 1:5){
  set.seed(j+1+(i-1)*6)
  r-rnorm(1)
  ss-ss+r
}

output[i] - ss
  }
  return(output)
}

BTW, I do not think it is a good idea to set.seed() so many times.


To answer you more general question, see if the following is useful.
I am trying to simulate 'n' values from a standard normal distribution
but 'n' is random variable itself.

f -function(w, lambda=3){
 
  tmp - list(NULL)
  
  for (i in 1:w){
n - 1 + rpois(1, lambda=lambda)  # number of simulation required
tmp[[ i ]]  - rnorm(n)
  }

  # flatten the list into a ragged matrix
  out.lengths   - sapply(tmp, length)
  out   - matrix( nr=w, nc=max( out.lengths ) )
  rownames(out) - paste(w =, 1:w)
  for(i in 1:w) out[i, 1:out.lengths[i] ] - tmp[[i]]

  return(out)
}

f(6, lambda=3)

It is not very elegant but I hope that helps you out somehow.

Regards, Adai



On Thu, 2005-03-10 at 10:16 +0200, Clark Allan wrote:
 hi all
 
 another simple question.
 
 i've written a dummy program so that you get the concept. (the code
 could be simplfied such that there are no loops. but lets leave the
 loops in for now.)
 
 z1-function(w)
 {
 for (i in 1:w)
 {
 set.seed(i+6)
 ss-0
   for (j in 1:5)
   {
   set.seed(j+1+(i-1)*6)
   r-rnorm(1)
   ss-ss+r
   }
 list(ss=ss)
 }
 }
 check.1-z1(3)
 check.1
 
 the results is:
 $ss
 [1] -0.01516304
 
 
 what i want is something that looks like this:
 
 j=1
 $ss
 [1] -2.213343
 
 j=2
 $ss
 [1] -2.904235
 
 j=3
 $ss
 [1] -0.01516304
 
 
 i know that i could use the print command. (see z2)
 
 z2-function(w)
 {
 for (i in 1:w)
 {
 set.seed(i+6)
 ss-0
   for (j in 1:5)
   {
   set.seed(j+1+(i-1)*6)
   r-rnorm(1)
   ss-ss+r
   }
 print(ss)
 }
 }
 check.2-z2(3)
 check.2
 
  check.2-z2(3)
 [1] -2.213343
 [1] -2.904235
 [1] -0.01516304
  check.2
 [1] -0.01516304
 
 the problem with z2 is that only the last value is saved.
 
 
 what i could do is use matrices like the following: (but i dont want to
 do this AND WOULD PREFER TO USE list.)
 
 z3-function(w)
 {
 results.-matrix(nrow=w,ncol=1)
 colnames(results.)-c(ss)
 for (i in 1:w)
 {
 set.seed(i+6)
 ss-0
   for (j in 1:5)
   {
   set.seed(j+1+(i-1)*6)
   r-rnorm(1)
   ss-ss+r
   }
 results.[i,1]-ss
 }
 results.
 }
 check.3-z3(3)
 check.3
 
  check.3
   ss
 [1,] -2.21334260
 [2,] -2.90423463
 [3,] -0.01516304
 
 what if i have a new program (something different) and i want the
 following:
 
 j=1
 $a
 1
 2
 3
 
 $b
 1
 2
 3
 4
 5
 
 $c
 1
 
 
 ###
 j=2
 $a
 11
 21
 31
 
 $b
 11
 21
 31
 41
 51
 
 $c
 11
 
 ###
 j=3
 $a
 21
 22
 32
 
 $b
 21
 22
 32
 42
 52
 
 $c
 21
 
 MATRICES SEEMS TO BE A GOOD WAY OF DOING THIS (but then you would have
 to set up three matrices, one for a,b and c). BUT WHAT IF I WANT TO USE
 THE LIST FUNCTION? i.e. there is a list in the first loop that i want to
 display!
 
 sorry for the long mail.
 
 ***
 ALLAN
 __ R-help@stat.math.ethz.ch 
 mailing list https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the 
 posting guide! http://www.R-project.org/posting-guide.html

__
R-help@stat.math.ethz.ch mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide! http://www.R-project.org/posting-guide.html


[R] R list

2004-10-29 Thread Leonardo L Miceli
Hi 

Is there any function to get the name of the components of a given list 
object?


ok.


[[alternative HTML version deleted]]

__
[EMAIL PROTECTED] mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide! http://www.R-project.org/posting-guide.html


RE: [R] R list

2004-10-29 Thread Robert Sams
names() is what you want, if i understand your question correctly.

cheers,
robert
-Original Message-
From: Leonardo L Miceli [mailto:[EMAIL PROTECTED]
Sent: Friday, October 29, 2004 3:22 PM
To: [EMAIL PROTECTED]
Subject: [R] R list


Hi 

Is there any function to get the name of the components of a given list 
object?


ok.


[[alternative HTML version deleted]]

__
[EMAIL PROTECTED] mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide! http://www.R-project.org/posting-guide.html

__
[EMAIL PROTECTED] mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide! http://www.R-project.org/posting-guide.html


RE: [R] R list

2004-10-29 Thread Liaw, Andy
Yes, names().

Andy

 From: Leonardo L Miceli
 
 Hi 
 
 Is there any function to get the name of the components of a 
 given list 
 object?
 
 
 ok.
 
 
   [[alternative HTML version deleted]]
 
 __
 [EMAIL PROTECTED] mailing list
 https://stat.ethz.ch/mailman/listinfo/r-help
 PLEASE do read the posting guide! 
 http://www.R-project.org/posting-guide.html
 


__
[EMAIL PROTECTED] mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide! http://www.R-project.org/posting-guide.html


Re: [R] R list

2004-10-29 Thread Giovanni Petris

What about names() ?

Giovanni

 Date: Fri, 29 Oct 2004 11:21:35 -0300
 From: Leonardo L Miceli [EMAIL PROTECTED]
 Sender: [EMAIL PROTECTED]
 Cc: 
 Precedence: list
 
 Hi 
 
 Is there any function to get the name of the components of a given list 
 object?
 
 
 ok.
 
 
   [[alternative HTML version deleted]]
 
 __
 [EMAIL PROTECTED] mailing list
 https://stat.ethz.ch/mailman/listinfo/r-help
 PLEASE do read the posting guide! http://www.R-project.org/posting-guide.html
 
 


-- 

 __
[  ]
[ Giovanni Petris [EMAIL PROTECTED] ]
[ Department of Mathematical Sciences  ]
[ University of Arkansas - Fayetteville, AR 72701  ]
[ Ph: (479) 575-6324, 575-8630 (fax)   ]
[ http://definetti.uark.edu/~gpetris/  ]
[__]

__
[EMAIL PROTECTED] mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide! http://www.R-project.org/posting-guide.html