Re: [R] R [coding : do not run for every row ]

2016-04-18 Thread tan sj
yes, i think that must be some mistake. I just noticed that it run for the nine 
sample sizes with the column fill in "1" in the result.
And yet i am still trying to figure out what is happening.


From: Thierry Onkelinx <thierry.onkel...@inbo.be>
Sent: Monday, April 18, 2016 10:03 AM
To: tan sj; r-help@r-project.org
Subject: Re: [R] R [coding : do not run for every row ]

Always keep the mailing list in cc.

The code runs for each row in the data. However I get the feeling that
there is a mismatch between what you think that is in the data and the
actual data.
ir. Thierry Onkelinx
Instituut voor natuur- en bosonderzoek / Research Institute for Nature
and Forest
team Biometrie & Kwaliteitszorg / team Biometrics & Quality Assurance
Kliniekstraat 25
1070 Anderlecht
Belgium

To call in the statistician after the experiment is done may be no
more than asking him to perform a post-mortem examination: he may be
able to say what the experiment died of. ~ Sir Ronald Aylmer Fisher
The plural of anecdote is not data. ~ Roger Brinner
The combination of some data and an aching desire for an answer does
not ensure that a reasonable answer can be extracted from a given body
of data. ~ John Tukey


2016-04-18 10:35 GMT+02:00 tan sj <sj_style_1...@outlook.com>:
> Thanks but it seem like the problem of looping through data is still the 
> samei am really wondering where is the mistake
>
> 
> From: Thierry Onkelinx <thierry.onkel...@inbo.be>
> Sent: Monday, April 18, 2016 7:21 AM
> To: tan sj
> Cc: r-help
> Subject: Re: [R] R [coding : do not run for every row ]
>
> You can make this much more readable with apply functions.
>
> result <- apply(
>   all_combine1,
>   1,
>   function(x){
> p.value <- sapply(
>   seq_len(nSims),
>   function(sim){
> gamma1 <- rgamma(x["m"], x["sp(skewness1.5)"], x["scp1"])
> gamma2 <- rgamma(x["n"], x["scp1"], 1)
> gamma1 <- gamma1 - x["sp(skewness1.5)"] * x["scp1"]
> gamma2 <- gamma2 - x["sp(skewness1.5)"]
> c(
>   equal = t.test(gamma1, gamma2, var.equal=TRUE)$p.value,
>   unequal = t.test(gamma1,gamma2,var.equal=FALSE)$p.value,
>   mann = wilcox.test(gamma1,gamma2)$p.value
> )
>   }
> )
> rowMeans(p.value <= alpha)
>   }
> )
> cbind(all_combine1, t(result))
> ir. Thierry Onkelinx
> Instituut voor natuur- en bosonderzoek / Research Institute for Nature
> and Forest
> team Biometrie & Kwaliteitszorg / team Biometrics & Quality Assurance
> Kliniekstraat 25
> 1070 Anderlecht
> Belgium
>
> To call in the statistician after the experiment is done may be no
> more than asking him to perform a post-mortem examination: he may be
> able to say what the experiment died of. ~ Sir Ronald Aylmer Fisher
> The plural of anecdote is not data. ~ Roger Brinner
> The combination of some data and an aching desire for an answer does
> not ensure that a reasonable answer can be extracted from a given body
> of data. ~ John Tukey
>
>
> 2016-04-18 9:05 GMT+02:00 tan sj <sj_style_1...@outlook.com>:
>> Hi, i am sorry, the output should be values between 0 and 0.1 and not
>> supposed to be 1.00, it is because they are type 1 error rate. And now i get
>> output 1.00 for several samples,rhis is no correct. The loop do not run for
>> every row. i do not know where is my mistake.  As i use the same concept on
>> normal distribution setup, i get the result.
>>
>> Sent from my phone
>>
>> On Thierry Onkelinx <thierry.onkel...@inbo.be>, Apr 18, 2016 2:55 PM wrote:
>> Dear anonymous,
>>
>> The big mistake in the output might be obvious to you but not to
>> others. Please make clear what the correct output should be or at
>> least what is wrong with the current output.
>>
>> And please DO read the posting guide which asks you not to post in HTML.
>> ir. Thierry Onkelinx
>> Instituut voor natuur- en bosonderzoek / Research Institute for Nature
>> and Forest
>> team Biometrie & Kwaliteitszorg / team Biometrics & Quality Assurance
>> Kliniekstraat 25
>> 1070 Anderlecht
>> Belgium
>>
>> To call in the statistician after the experiment is done may be no
>> more than asking him to perform a post-mortem examination: he may be
>> able to say what the experiment died of. ~ Sir Ronald Aylmer Fisher
>> The plural of anecdote is not data. ~ Roger Brinner
>> The combination of some data and an aching desire for an answer does
>> not ensure that a reasonable answer

Re: [R] R [coding : do not run for every row ]

2016-04-18 Thread Thierry Onkelinx
Always keep the mailing list in cc.

The code runs for each row in the data. However I get the feeling that
there is a mismatch between what you think that is in the data and the
actual data.
ir. Thierry Onkelinx
Instituut voor natuur- en bosonderzoek / Research Institute for Nature
and Forest
team Biometrie & Kwaliteitszorg / team Biometrics & Quality Assurance
Kliniekstraat 25
1070 Anderlecht
Belgium

To call in the statistician after the experiment is done may be no
more than asking him to perform a post-mortem examination: he may be
able to say what the experiment died of. ~ Sir Ronald Aylmer Fisher
The plural of anecdote is not data. ~ Roger Brinner
The combination of some data and an aching desire for an answer does
not ensure that a reasonable answer can be extracted from a given body
of data. ~ John Tukey


2016-04-18 10:35 GMT+02:00 tan sj <sj_style_1...@outlook.com>:
> Thanks but it seem like the problem of looping through data is still the 
> samei am really wondering where is the mistake
>
> 
> From: Thierry Onkelinx <thierry.onkel...@inbo.be>
> Sent: Monday, April 18, 2016 7:21 AM
> To: tan sj
> Cc: r-help
> Subject: Re: [R] R [coding : do not run for every row ]
>
> You can make this much more readable with apply functions.
>
> result <- apply(
>   all_combine1,
>   1,
>   function(x){
> p.value <- sapply(
>   seq_len(nSims),
>   function(sim){
> gamma1 <- rgamma(x["m"], x["sp(skewness1.5)"], x["scp1"])
> gamma2 <- rgamma(x["n"], x["scp1"], 1)
> gamma1 <- gamma1 - x["sp(skewness1.5)"] * x["scp1"]
> gamma2 <- gamma2 - x["sp(skewness1.5)"]
> c(
>   equal = t.test(gamma1, gamma2, var.equal=TRUE)$p.value,
>   unequal = t.test(gamma1,gamma2,var.equal=FALSE)$p.value,
>   mann = wilcox.test(gamma1,gamma2)$p.value
> )
>   }
> )
> rowMeans(p.value <= alpha)
>   }
> )
> cbind(all_combine1, t(result))
> ir. Thierry Onkelinx
> Instituut voor natuur- en bosonderzoek / Research Institute for Nature
> and Forest
> team Biometrie & Kwaliteitszorg / team Biometrics & Quality Assurance
> Kliniekstraat 25
> 1070 Anderlecht
> Belgium
>
> To call in the statistician after the experiment is done may be no
> more than asking him to perform a post-mortem examination: he may be
> able to say what the experiment died of. ~ Sir Ronald Aylmer Fisher
> The plural of anecdote is not data. ~ Roger Brinner
> The combination of some data and an aching desire for an answer does
> not ensure that a reasonable answer can be extracted from a given body
> of data. ~ John Tukey
>
>
> 2016-04-18 9:05 GMT+02:00 tan sj <sj_style_1...@outlook.com>:
>> Hi, i am sorry, the output should be values between 0 and 0.1 and not
>> supposed to be 1.00, it is because they are type 1 error rate. And now i get
>> output 1.00 for several samples,rhis is no correct. The loop do not run for
>> every row. i do not know where is my mistake.  As i use the same concept on
>> normal distribution setup, i get the result.
>>
>> Sent from my phone
>>
>> On Thierry Onkelinx <thierry.onkel...@inbo.be>, Apr 18, 2016 2:55 PM wrote:
>> Dear anonymous,
>>
>> The big mistake in the output might be obvious to you but not to
>> others. Please make clear what the correct output should be or at
>> least what is wrong with the current output.
>>
>> And please DO read the posting guide which asks you not to post in HTML.
>> ir. Thierry Onkelinx
>> Instituut voor natuur- en bosonderzoek / Research Institute for Nature
>> and Forest
>> team Biometrie & Kwaliteitszorg / team Biometrics & Quality Assurance
>> Kliniekstraat 25
>> 1070 Anderlecht
>> Belgium
>>
>> To call in the statistician after the experiment is done may be no
>> more than asking him to perform a post-mortem examination: he may be
>> able to say what the experiment died of. ~ Sir Ronald Aylmer Fisher
>> The plural of anecdote is not data. ~ Roger Brinner
>> The combination of some data and an aching desire for an answer does
>> not ensure that a reasonable answer can be extracted from a given body
>> of data. ~ John Tukey
>>
>>
>> 2016-04-17 19:59 GMT+02:00 tan sj <sj_style_1...@outlook.com>:
>>> i have combined all the variables in a matrix, and i wish to conduct a
>>> simulation row by row.
>>>
>>> But i found out the code only works for the every first row after a cycle
>>> of nine samples.
>>>
>

Re: [R] R [coding : do not run for every row ]

2016-04-18 Thread tan sj
Hi, i am sorry, the output should be values between 0 and 0.1 and not supposed 
to be 1.00, it is because they are type 1 error rate. And now i get output 1.00 
for several samples,rhis is no correct. The loop do not run for every row. i do 
not know where is my mistake.  As i use the same concept on normal distribution 
setup, i get the result.

Sent from my phone

On Thierry Onkelinx , Apr 18, 2016 2:55 PM wrote:
Dear anonymous,

The big mistake in the output might be obvious to you but not to
others. Please make clear what the correct output should be or at
least what is wrong with the current output.

And please DO read the posting guide which asks you not to post in HTML.
ir. Thierry Onkelinx
Instituut voor natuur- en bosonderzoek / Research Institute for Nature
and Forest
team Biometrie & Kwaliteitszorg / team Biometrics & Quality Assurance
Kliniekstraat 25
1070 Anderlecht
Belgium

To call in the statistician after the experiment is done may be no
more than asking him to perform a post-mortem examination: he may be
able to say what the experiment died of. ~ Sir Ronald Aylmer Fisher
The plural of anecdote is not data. ~ Roger Brinner
The combination of some data and an aching desire for an answer does
not ensure that a reasonable answer can be extracted from a given body
of data. ~ John Tukey


2016-04-17 19:59 GMT+02:00 tan sj :
> i have combined all the variables in a matrix, and i wish to conduct a 
> simulation row by row.
>
> But i found out the code only works for the every first row after a cycle of 
> nine samples.
>
> But after check out the code, i don know where is my mistake...
>
> can anyone pls help 
>
>
> #For gamma disribution with equal skewness 1.5
>
> #to evaluate the same R function on many different sets of data
> library(parallel)
>
> nSims<-100
> alpha<-0.05
>
> #set nrow =nsims because wan storing every p-value simulated
> #for gamma distribution with equal skewness
> matrix2_equal  <-matrix(0,nrow=nSims,ncol=3)
> matrix5_unequal<-matrix(0,nrow=nSims,ncol=3)
> matrix8_mann   <-matrix(0,nrow=nSims,ncol=3)
>
> # to ensure the reproducity of the result
> #here we declare the random seed generator
> set.seed(1)
>
> ## Put the samples sizes into matrix then use a loop for sample sizes
> sample_sizes<-matrix(c(10,10,10,25,25,25,25,50,25,100,50,25,50,100,100,25,100,100),
> nrow=2)
>
> #shape parameter for both gamma distribution for equal skewness
> #forty five cases for each skewness!!
> shp<-rep(16/9,each=5)
>
> #scale parameter for sample 1
> #scale paramter for sample 2 set as constant 1
> scp1<-c(1,1.5,2,2.5,3)
>
> #get all combinations with one row of the sample_sizes matrix
> ##(use expand.grid)to create a data frame from combination of data
>
> ss_sd1<- expand.grid(sample_sizes[2,],shp)
> scp1<-rep(scp1,9)
>
> std2<-rep(sd2,9)
>
> #create a matrix combining the forty five cases of combination of sample 
> sizes,shape and scale parameter
> all_combine1 <- cbind(rep(sample_sizes[1,], 5),ss_sd1,scp1)
>
> # name the column samples 1 and 2 and standard deviation
> colnames(all_combine1) <- c("m", "n","sp(skewness1.5)","scp1")
>
> ##for the samples sizes into matrix then use a loop for sample sizes
>  # this loop steps through the all_combine matrix
>   for(ss in 1:nrow(all_combine1))
>   {
> #generate samples from the first column and second column
>  m<-all_combine1[ss,1]
>  n<-all_combine1[ss,2]
>
>for (sim in 1:nSims)
>{
> #generate 2 random samples from gamma distribution with equal skewness
> gamma1<-rgamma(m,all_combine1[ss,3],all_combine1[ss,4])
> gamma2<-rgamma(n,all_combine1[ss,4],1)
>
> # minus the population mean to ensure that there is no lose of 
> equality of mean
> gamma1<-gamma1-all_combine1[ss,3]*all_combine1[ss,4]
> gamma2<-gamma2-all_combine1[ss,3]
>
> #extract p-value out and store every p-value into matrix
> matrix2_equal[sim,1]<-t.test(gamma1,gamma2,var.equal=TRUE)$p.value
> matrix5_unequal[sim,2]<-t.test(gamma1,gamma2,var.equal=FALSE)$p.value
> matrix8_mann[sim,3] <-wilcox.test(gamma1,gamma2)$p.value
> }
>##store the result
>   equal[ss]<- mean(matrix2_equal[,1]<=alpha)
>   unequal[ss]<-mean(matrix5_unequal[,2]<=alpha)
>   mann[ss]<- mean(matrix8_mann[,3]<=alpha)
>   }
>
> g_equal<-cbind(all_combine1, equal, unequal, mann)
>
> It is my result but it show a very big mistake TT
>  m   n sp(skewness1.5) scp1 equal unequal mann
> 1   10  101.78  1.0  0.360.34 0.34
> 2   10  251.78  1.5  0.840.87 0.90
> 3   25  251.78  2.0  1.001.00 1.00
> 4   25  501.78  2.5  1.001.00 1.00
> 5   25 1001.78  3.0  1.001.00 1.00
> 6   50  251.78  1.0  0.770.77 0.84
> 7   50 1001.78  1.5  1.001.00 1.00
> 8  100  251.78  2.0  1.001.00 1.00
> 9  100 100

Re: [R] R [coding : do not run for every row ]

2016-04-18 Thread Thierry Onkelinx
You can make this much more readable with apply functions.

result <- apply(
  all_combine1,
  1,
  function(x){
p.value <- sapply(
  seq_len(nSims),
  function(sim){
gamma1 <- rgamma(x["m"], x["sp(skewness1.5)"], x["scp1"])
gamma2 <- rgamma(x["n"], x["scp1"], 1)
gamma1 <- gamma1 - x["sp(skewness1.5)"] * x["scp1"]
gamma2 <- gamma2 - x["sp(skewness1.5)"]
c(
  equal = t.test(gamma1, gamma2, var.equal=TRUE)$p.value,
  unequal = t.test(gamma1,gamma2,var.equal=FALSE)$p.value,
  mann = wilcox.test(gamma1,gamma2)$p.value
)
  }
)
rowMeans(p.value <= alpha)
  }
)
cbind(all_combine1, t(result))
ir. Thierry Onkelinx
Instituut voor natuur- en bosonderzoek / Research Institute for Nature
and Forest
team Biometrie & Kwaliteitszorg / team Biometrics & Quality Assurance
Kliniekstraat 25
1070 Anderlecht
Belgium

To call in the statistician after the experiment is done may be no
more than asking him to perform a post-mortem examination: he may be
able to say what the experiment died of. ~ Sir Ronald Aylmer Fisher
The plural of anecdote is not data. ~ Roger Brinner
The combination of some data and an aching desire for an answer does
not ensure that a reasonable answer can be extracted from a given body
of data. ~ John Tukey


2016-04-18 9:05 GMT+02:00 tan sj :
> Hi, i am sorry, the output should be values between 0 and 0.1 and not
> supposed to be 1.00, it is because they are type 1 error rate. And now i get
> output 1.00 for several samples,rhis is no correct. The loop do not run for
> every row. i do not know where is my mistake.  As i use the same concept on
> normal distribution setup, i get the result.
>
> Sent from my phone
>
> On Thierry Onkelinx , Apr 18, 2016 2:55 PM wrote:
> Dear anonymous,
>
> The big mistake in the output might be obvious to you but not to
> others. Please make clear what the correct output should be or at
> least what is wrong with the current output.
>
> And please DO read the posting guide which asks you not to post in HTML.
> ir. Thierry Onkelinx
> Instituut voor natuur- en bosonderzoek / Research Institute for Nature
> and Forest
> team Biometrie & Kwaliteitszorg / team Biometrics & Quality Assurance
> Kliniekstraat 25
> 1070 Anderlecht
> Belgium
>
> To call in the statistician after the experiment is done may be no
> more than asking him to perform a post-mortem examination: he may be
> able to say what the experiment died of. ~ Sir Ronald Aylmer Fisher
> The plural of anecdote is not data. ~ Roger Brinner
> The combination of some data and an aching desire for an answer does
> not ensure that a reasonable answer can be extracted from a given body
> of data. ~ John Tukey
>
>
> 2016-04-17 19:59 GMT+02:00 tan sj :
>> i have combined all the variables in a matrix, and i wish to conduct a
>> simulation row by row.
>>
>> But i found out the code only works for the every first row after a cycle
>> of nine samples.
>>
>> But after check out the code, i don know where is my mistake...
>>
>> can anyone pls help 
>>
>>
>> #For gamma disribution with equal skewness 1.5
>>
>> #to evaluate the same R function on many different sets of data
>> library(parallel)
>>
>> nSims<-100
>> alpha<-0.05
>>
>> #set nrow =nsims because wan storing every p-value simulated
>> #for gamma distribution with equal skewness
>> matrix2_equal  <-matrix(0,nrow=nSims,ncol=3)
>> matrix5_unequal<-matrix(0,nrow=nSims,ncol=3)
>> matrix8_mann   <-matrix(0,nrow=nSims,ncol=3)
>>
>> # to ensure the reproducity of the result
>> #here we declare the random seed generator
>> set.seed(1)
>>
>> ## Put the samples sizes into matrix then use a loop for sample sizes
>>
>> sample_sizes<-matrix(c(10,10,10,25,25,25,25,50,25,100,50,25,50,100,100,25,100,100),
>> nrow=2)
>>
>> #shape parameter for both gamma distribution for equal skewness
>> #forty five cases for each skewness!!
>> shp<-rep(16/9,each=5)
>>
>> #scale parameter for sample 1
>> #scale paramter for sample 2 set as constant 1
>> scp1<-c(1,1.5,2,2.5,3)
>>
>> #get all combinations with one row of the sample_sizes matrix
>> ##(use expand.grid)to create a data frame from combination of data
>>
>> ss_sd1<- expand.grid(sample_sizes[2,],shp)
>> scp1<-rep(scp1,9)
>>
>> std2<-rep(sd2,9)
>>
>> #create a matrix combining the forty five cases of combination of sample
>> sizes,shape and scale parameter
>> all_combine1 <- cbind(rep(sample_sizes[1,], 5),ss_sd1,scp1)
>>
>> # name the column samples 1 and 2 and standard deviation
>> colnames(all_combine1) <- c("m", "n","sp(skewness1.5)","scp1")
>>
>> ##for the samples sizes into matrix then use a loop for sample sizes
>>  # this loop steps through the all_combine matrix
>>   for(ss in 1:nrow(all_combine1))
>>   {
>> #generate samples from the first column and second column
>>  m<-all_combine1[ss,1]
>>  n<-all_combine1[ss,2]
>>
>>for (sim in 1:nSims)
>> 

Re: [R] R [coding : do not run for every row ]

2016-04-18 Thread Thierry Onkelinx
Dear anonymous,

The big mistake in the output might be obvious to you but not to
others. Please make clear what the correct output should be or at
least what is wrong with the current output.

And please DO read the posting guide which asks you not to post in HTML.
ir. Thierry Onkelinx
Instituut voor natuur- en bosonderzoek / Research Institute for Nature
and Forest
team Biometrie & Kwaliteitszorg / team Biometrics & Quality Assurance
Kliniekstraat 25
1070 Anderlecht
Belgium

To call in the statistician after the experiment is done may be no
more than asking him to perform a post-mortem examination: he may be
able to say what the experiment died of. ~ Sir Ronald Aylmer Fisher
The plural of anecdote is not data. ~ Roger Brinner
The combination of some data and an aching desire for an answer does
not ensure that a reasonable answer can be extracted from a given body
of data. ~ John Tukey


2016-04-17 19:59 GMT+02:00 tan sj :
> i have combined all the variables in a matrix, and i wish to conduct a 
> simulation row by row.
>
> But i found out the code only works for the every first row after a cycle of 
> nine samples.
>
> But after check out the code, i don know where is my mistake...
>
> can anyone pls help 
>
>
> #For gamma disribution with equal skewness 1.5
>
> #to evaluate the same R function on many different sets of data
> library(parallel)
>
> nSims<-100
> alpha<-0.05
>
> #set nrow =nsims because wan storing every p-value simulated
> #for gamma distribution with equal skewness
> matrix2_equal  <-matrix(0,nrow=nSims,ncol=3)
> matrix5_unequal<-matrix(0,nrow=nSims,ncol=3)
> matrix8_mann   <-matrix(0,nrow=nSims,ncol=3)
>
> # to ensure the reproducity of the result
> #here we declare the random seed generator
> set.seed(1)
>
> ## Put the samples sizes into matrix then use a loop for sample sizes
> sample_sizes<-matrix(c(10,10,10,25,25,25,25,50,25,100,50,25,50,100,100,25,100,100),
> nrow=2)
>
> #shape parameter for both gamma distribution for equal skewness
> #forty five cases for each skewness!!
> shp<-rep(16/9,each=5)
>
> #scale parameter for sample 1
> #scale paramter for sample 2 set as constant 1
> scp1<-c(1,1.5,2,2.5,3)
>
> #get all combinations with one row of the sample_sizes matrix
> ##(use expand.grid)to create a data frame from combination of data
>
> ss_sd1<- expand.grid(sample_sizes[2,],shp)
> scp1<-rep(scp1,9)
>
> std2<-rep(sd2,9)
>
> #create a matrix combining the forty five cases of combination of sample 
> sizes,shape and scale parameter
> all_combine1 <- cbind(rep(sample_sizes[1,], 5),ss_sd1,scp1)
>
> # name the column samples 1 and 2 and standard deviation
> colnames(all_combine1) <- c("m", "n","sp(skewness1.5)","scp1")
>
> ##for the samples sizes into matrix then use a loop for sample sizes
>  # this loop steps through the all_combine matrix
>   for(ss in 1:nrow(all_combine1))
>   {
> #generate samples from the first column and second column
>  m<-all_combine1[ss,1]
>  n<-all_combine1[ss,2]
>
>for (sim in 1:nSims)
>{
> #generate 2 random samples from gamma distribution with equal skewness
> gamma1<-rgamma(m,all_combine1[ss,3],all_combine1[ss,4])
> gamma2<-rgamma(n,all_combine1[ss,4],1)
>
> # minus the population mean to ensure that there is no lose of 
> equality of mean
> gamma1<-gamma1-all_combine1[ss,3]*all_combine1[ss,4]
> gamma2<-gamma2-all_combine1[ss,3]
>
> #extract p-value out and store every p-value into matrix
> matrix2_equal[sim,1]<-t.test(gamma1,gamma2,var.equal=TRUE)$p.value
> matrix5_unequal[sim,2]<-t.test(gamma1,gamma2,var.equal=FALSE)$p.value
> matrix8_mann[sim,3] <-wilcox.test(gamma1,gamma2)$p.value
> }
>##store the result
>   equal[ss]<- mean(matrix2_equal[,1]<=alpha)
>   unequal[ss]<-mean(matrix5_unequal[,2]<=alpha)
>   mann[ss]<- mean(matrix8_mann[,3]<=alpha)
>   }
>
> g_equal<-cbind(all_combine1, equal, unequal, mann)
>
> It is my result but it show a very big mistake TT
>  m   n sp(skewness1.5) scp1 equal unequal mann
> 1   10  101.78  1.0  0.360.34 0.34
> 2   10  251.78  1.5  0.840.87 0.90
> 3   25  251.78  2.0  1.001.00 1.00
> 4   25  501.78  2.5  1.001.00 1.00
> 5   25 1001.78  3.0  1.001.00 1.00
> 6   50  251.78  1.0  0.770.77 0.84
> 7   50 1001.78  1.5  1.001.00 1.00
> 8  100  251.78  2.0  1.001.00 1.00
> 9  100 1001.78  2.5  1.001.00 1.00
> 10  10  101.78  3.0  1.001.00 1.00
> 11  10  251.78  1.0  0.480.30 0.55
> 12  25  251.78  1.5  0.990.99 1.00
> 13  25  501.78  2.0  1.001.00 1.00
> 14  25 1001.78  2.5  1.001.00 1.00
> 15  50  251.78  3.0  1.001.00 1.00
> 16  50 1001.78  1.0  0.970.97 1.00
> 17 100  251.78  1.5  1.00

[R] R [coding : do not run for every row ]

2016-04-17 Thread tan sj
i have combined all the variables in a matrix, and i wish to conduct a 
simulation row by row.

But i found out the code only works for the every first row after a cycle of 
nine samples.

But after check out the code, i don know where is my mistake...

can anyone pls help 


#For gamma disribution with equal skewness 1.5

#to evaluate the same R function on many different sets of data
library(parallel)

nSims<-100
alpha<-0.05

#set nrow =nsims because wan storing every p-value simulated
#for gamma distribution with equal skewness
matrix2_equal  <-matrix(0,nrow=nSims,ncol=3)
matrix5_unequal<-matrix(0,nrow=nSims,ncol=3)
matrix8_mann   <-matrix(0,nrow=nSims,ncol=3)

# to ensure the reproducity of the result
#here we declare the random seed generator
set.seed(1)

## Put the samples sizes into matrix then use a loop for sample sizes
sample_sizes<-matrix(c(10,10,10,25,25,25,25,50,25,100,50,25,50,100,100,25,100,100),
nrow=2)

#shape parameter for both gamma distribution for equal skewness
#forty five cases for each skewness!!
shp<-rep(16/9,each=5)

#scale parameter for sample 1
#scale paramter for sample 2 set as constant 1
scp1<-c(1,1.5,2,2.5,3)

#get all combinations with one row of the sample_sizes matrix
##(use expand.grid)to create a data frame from combination of data

ss_sd1<- expand.grid(sample_sizes[2,],shp)
scp1<-rep(scp1,9)

std2<-rep(sd2,9)

#create a matrix combining the forty five cases of combination of sample 
sizes,shape and scale parameter
all_combine1 <- cbind(rep(sample_sizes[1,], 5),ss_sd1,scp1)

# name the column samples 1 and 2 and standard deviation
colnames(all_combine1) <- c("m", "n","sp(skewness1.5)","scp1")

##for the samples sizes into matrix then use a loop for sample sizes
 # this loop steps through the all_combine matrix
  for(ss in 1:nrow(all_combine1))
  {
#generate samples from the first column and second column
 m<-all_combine1[ss,1]
 n<-all_combine1[ss,2]

   for (sim in 1:nSims)
   {
#generate 2 random samples from gamma distribution with equal skewness
gamma1<-rgamma(m,all_combine1[ss,3],all_combine1[ss,4])
gamma2<-rgamma(n,all_combine1[ss,4],1)

# minus the population mean to ensure that there is no lose of equality 
of mean
gamma1<-gamma1-all_combine1[ss,3]*all_combine1[ss,4]
gamma2<-gamma2-all_combine1[ss,3]

#extract p-value out and store every p-value into matrix
matrix2_equal[sim,1]<-t.test(gamma1,gamma2,var.equal=TRUE)$p.value
matrix5_unequal[sim,2]<-t.test(gamma1,gamma2,var.equal=FALSE)$p.value
matrix8_mann[sim,3] <-wilcox.test(gamma1,gamma2)$p.value
}
   ##store the result
  equal[ss]<- mean(matrix2_equal[,1]<=alpha)
  unequal[ss]<-mean(matrix5_unequal[,2]<=alpha)
  mann[ss]<- mean(matrix8_mann[,3]<=alpha)
  }

g_equal<-cbind(all_combine1, equal, unequal, mann)

It is my result but it show a very big mistake TT
 m   n sp(skewness1.5) scp1 equal unequal mann
1   10  101.78  1.0  0.360.34 0.34
2   10  251.78  1.5  0.840.87 0.90
3   25  251.78  2.0  1.001.00 1.00
4   25  501.78  2.5  1.001.00 1.00
5   25 1001.78  3.0  1.001.00 1.00
6   50  251.78  1.0  0.770.77 0.84
7   50 1001.78  1.5  1.001.00 1.00
8  100  251.78  2.0  1.001.00 1.00
9  100 1001.78  2.5  1.001.00 1.00
10  10  101.78  3.0  1.001.00 1.00
11  10  251.78  1.0  0.480.30 0.55
12  25  251.78  1.5  0.990.99 1.00
13  25  501.78  2.0  1.001.00 1.00
14  25 1001.78  2.5  1.001.00 1.00
15  50  251.78  3.0  1.001.00 1.00
16  50 1001.78  1.0  0.970.97 1.00
17 100  251.78  1.5  1.001.00 1.00
18 100 1001.78  2.0  1.001.00 1.00
19  10  101.78  2.5  1.001.00 1.00
20  10  251.78  3.0  1.001.00 1.00
21  25  251.78  1.0  0.630.63 0.71
22  25  501.78  1.5  0.990.99 0.99
23  25 1001.78  2.0  1.001.00 1.00
24  50  251.78  2.5  1.001.00 1.00
25  50 1001.78  3.0  1.001.00 1.00
26 100  251.78  1.0  0.830.90 0.88
27 100 1001.78  1.5  1.001.00 1.00
28  10  101.78  2.0  1.001.00 1.00
29  10  251.78  2.5  1.001.00 1.00
30  25  251.78  3.0  1.001.00 1.00
31  25  501.78  1.0  0.710.66 0.81
32  25 1001.78  1.5  1.001.00 1.00
33  50  251.78  2.0  1.001.00 1.00
34  50 1001.78  2.5  1.001.00 1.00
35 100  251.78  3.0  1.001.00 1.00
36 100 1001.78  1.0  0.990.99 1.00
37  10  101.78  1.5  0.650.65 0.71
38  10  251.78  2.0  1.001.00 1.00
39  25  251.78  2.5  1.001.00 1.00
40  25  501.78