Unused argument in R
1
0
Entering edit mode
4.2 years ago
paria ▴ 90

I am calling two function repeatedly (Nrep times) and save the results using the below code:

repeat.gendat <- function(Nreps,N, quantilelist=c(0,1,5,50,95,99,100),
                          distrib='norm',n.mean=5, n.stdev=3,e.lambda=0.1,
                          qq=0.5,M=1) {
  for (j in 1:Nreps) {
    if (j==1) {
      if (distrib=='norm') { output.data <- gen.norm.dat(N,n.mean,n.stdev,quantilelist)}
      if (distrib=='exp')  { output.data <- gen.exp.dat(N,e.lambda,quantilelist)}
      if (distrib=='binom')  { output.data <- 
        gen.binom.dat(N,qq, M,quantilelist)}
    }
    if (j>1) {
      if (distrib=='norm') { output.data <- rbind(output.data,
                                 gen.norm.dat(N,n.mean,n.stdev,quantilelist)) }
      if (distrib=='exp') { output.data <- rbind(output.data,
                                 gen.exp.dat(N,e.lambda,quantilelist)) }
      if (distrib=='binom') { output.data <- rbind(output.data,
                                 gen.binom.dat(N,qq,M,quantilelist)) }
      }
  } 
return(output.data)
}

And then to generate the normally distributed data I run the below code in Rstudio:

data1 <- repeat.gendat(100, 50,quantilelist=c(0,1,5,50,95,99,100),
                       distrib='norm', n.mean = 5, n.stdev = 3)

But I am getting this error: Error in rnorm(Nreps, N, n.mean, n.stdev) : unused argument (n.stdev) I don't know where I am wrong. Any help would be appreciated

R • 2.2k views
ADD COMMENT
1
Entering edit mode

Paria, please use "code sample" option to indicate your code lines.

ADD REPLY
1
Entering edit mode

Is the function gen.norm.dat from a library, or did you define it elsewhere? This function is likely calling rnorm incorrectly, but I wouldn't be able to help without knowing the origin of the function.

ADD REPLY
1
Entering edit mode

The parameters for rnorm is rnorm(N, mean, sd). I guess what you are trying to do here is to generate multiple normally distributed values. For that you will need to do replicate(Nreps, rnorm(N, n.mean, n.stdev)) in the gen.norm.dat function.

ADD REPLY
1
Entering edit mode
4.2 years ago
paria ▴ 90

The problem was solved. That is right I did not run gen.norm.data before this code. Thank you all

ADD COMMENT
0
Entering edit mode

How did you resolve the problem?

ADD REPLY
0
Entering edit mode

The gen.norm.data was a function and without defining it I was trying to run it. So, that was the reason I was getting the error. I run the gen.norm.data function. Does that make sense?

ADD REPLY

Login before adding your answer.

Traffic: 2322 users visited in the last hour
Help About
FAQ
Access RSS
API
Stats

Use of this site constitutes acceptance of our User Agreement and Privacy Policy.

Powered by the version 2.3.6