using functions inside a for loop in R -
i have seen lot of close nothing has solved issue running into. question how address vector value within function such mean function, , how place vector value title. switched sas r im little confused.
###### parameters ##### nphase1=50 nphase2=1000 varcount=5 meanshift= 0 sigmashift= 1 ##### phase1 dataset/ control limits ##### (i in 1:varcount) { assign (paste("x",i, sep=""), (rnorm(nphase1,0,1))) mean_var[i]=mean(x[i]) std_var[i]=sd(x[i]) upper_spc_limit_method1_var[i]= mean_var[i] + (3 * std_var[i]) lower_spc_limit_method1_var[i]= mean_var[i] - (3 * std_var[i]) moving_range_var[i]= abs(diff(x[i])) mr_mean[i]= mean(moving_range_var[i]) upper_spc_limit_method2_var[i] =mean_var[i] + (3 * mr_mean[i]) lower_spc_limit_method2_var[i] =mean_var[i] - (3 * mr_mean[i]) } i sure have similar (assign(paste("x",i, sep="") labeling individual individual limits, can't step without being able calculate mean of each variable inside loop. trying create 5 variables have 50 observations each(normal random dist). want take mean & sd of each variable construct control limits using these numbers.
thanks insight!
i believe code below accomplishes desire. make use of matrix(), with() , apply(), , recommend reading on them kind of work.
###### parameters ##### nphase1=50 nphase2=1000 varcount=5 meanshift= 0 sigmashift= 1 ##### phase1 dataset/ control limits ##### x <- matrix(rnorm(nphase1*varcount, 0, 1), nrow = nphase1, ncol = varcount) mean_var <- apply(x, 2, mean) std_var <- apply(x, 2, sd) df_var <- data.frame(mean_var, std_var) upper_spc_limit_method1_var <- with(df_var, mean_var + 3 * std_var) lower_spc_limit_method1_var <- with(df_var, mean_var - 3 * std_var) moving_range_var <- apply(x, 2, function(z) abs(diff(z))) mr_mean <- apply(moving_range_var, 2, mean) upper_spc_limit_method2_var <- with(df_var, mean_var + 3 * mr_mean) lower_spc_limit_method2_var <- with(df_var, mean_var - 3 * std_var)
Comments
Post a Comment