I created this function to generate the data with the characteristics I need:
genereting_fuction<-function(n){
X1=rnorm(n) mean_shifts[1]
X4=rnorm(n) mean_shifts[4]
X2=X1*p12 std_e2*rnorm(n) mean_shifts[2]
X3=X1*p13 X4*p43 std_e3*rnorm(n) mean_shifts[3]
X5=X2*p25 X3*p35 std_e5*rnorm(n) mean_shifts[5]
sample=cbind(X1,X2,X3,X4,X5)
return(sample)
}
if I call it for a single item it works but when I call it in the applay function as follows:
dati<-lapply(1:100, genereting_fuction(100))
I get this error: Error in genereting_fuction(100) : could not find function "genereting_fuction"
CodePudding user response:
Note that I prefer the replicate solution by @Jakub.Novotny for your purpose, but to understand what went wrong using lapply, this is why and how to solve it.
Using apply and a function, it assumes x
the value of your apply to be provided always in the function.
To make it work you can do two things.
lapply(1:100, function(x) genereting_fuction(100))
include x in your function like
genereting_fuction <- function(x, n) { # code here }
and then you can uselapply(1:100, genereting_fuction, n = 100)