Skip to content

I need your help

2 messages · KOITA Lassana - STAC/ACE, Marco Geraci

#
Hi,
Dear R users
I have problem with the following code. The matrix result must be a matrix
(3x3). But I have obtained a matrix(3x1) and I don't know why.
So, I need your help

Best regards

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

taille <- function (delta, t, prob = 0.2)

{

niv.conf <- c(0.90, 0.95, 0.99)
if(niv.conf <- 0.90) {
   t <- 1.645
}

 else {

 if(niv.conf <- 0.95) {
   t <- 1.96
}

t <- 2.575
}

n <- length(delta)

m <- length(t)

result <- matrix(nrow = n, ncol = m);

for (i in 1:n)
   {
     for(j in 1:m)

      {

       result[i,j]<- prob*(1-prob)*((t[i])^2)/(delta[j])^2 ;

      }
   }

rownames(result) <- delta
colnames(result) <- niv.conf
round(result,2)

}

taille (delta <- c( 0.01, 0.02, 0.03), niv.conf <-  c(0.90, 0.95, 0.99))

####################################################################"



Lassana KOITA
Etudes de S??curit?? et d'Exploitation a??roportuaires / Aerodrome Safety &
Statistical analysis
Service Technique de l'Aviation Civile (STAC) / Civil Aviation Technical
Department
Direction G??n??rale de l'Aviation Civile (DGAC) / French Civil Aviation
Authority
Tel: 01 49 56 80 60
Fax: 01 49 56 82 14
E-mail: Lassana.Koita at aviation-civile.gouv.fr
http://www.stac.aviation-civile.gouv.fr/
#
Hello,
I made some adjustments to your code.

1) You used 't' twice in your code. When you assign t
<- 1.645, the length m of 't' becomes 1 (that's why
your matrix was 3 x 1)

2) I assumed that the 'critical value' t is the
quantile of a Normal (0,1). By using 't <-
qnorm(0.5*level + 0.5)' allows you to consider any
value between 0 and 1 for level. Otherwise, you must
write a 'neverending' list  of 'if else'. If I assumed
wrong, put back in the code the 'if else' statement.

3) The 'kronecker' function avoids the loops for 'i'
and 'j'

I hope this is what you want.

Marco Geraci


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

taille <- function (delta, level, prob = 0.2) {

t <- qnorm(0.5*level + 0.5)

n <- length(delta)
m <- length(level)

result <-
prob*(1-prob)*matrix(kronecker(t^2,delta^2,FUN="/"),
n, m, byrow=T)

rownames(result) <- delta
colnames(result) <- level
round(result,2)

}

taille (delta = c(0.01, 0.02, 0.03), level = c(0.90,
0.95, 0.99))

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



--- KOITA Lassana - STAC/ACE
<lassana.koita at aviation-civile.gouv.fr> wrote:

            
#####################################################################
####################################################################"