# Average of results coming from B=100 repetitions (looping)

 Classic List Threaded
5 messages
Reply | Threaded
Open this post in threaded view
|

## Average of results coming from B=100 repetitions (looping)

 Dear R-experts, Here below the reproducible example. I am trying to get the average of the 100 results coming from the "lst" function. I have tried lst\$mean and mean(lst). It does not work. Any help would be highly appreciated. ####################  ## R script for getting MedAe and MedAeSQ from HBR model on Testing data install.packages("robustbase") install.packages( "MASS" ) install.packages( "quantreg" ) install.packages( "RobPer") install.packages("devtools") library("devtools") install_github("kloke/hbrfit") install.packages('http://www.stat.wmich.edu/mckean/Stat666/Pkgs/npsmReg2_0.1.1.tar.gz') library(robustbase) library(MASS) library(quantreg) library(RobPer) library(hbrfit) # numeric variables A=c(2,3,4,3,2,6,5,6,4,3,5,55,6,5,4,5,6,6,7,52) B=c(45,43,23,47,65,21,12,7,18,29,56,45,34,23,12,65,4,34,54,23) D=c(21,54,34,12,4,56,74,3,12,71,14,15,63,34,35,23,24,21,69,32) # Create a dataframe BIO<-data.frame(A,B,D)  # Create a list to store the results lst<-list() # This statement does the repetitions (looping) for(i in 1 :100) { # randomize sampling seed n=dim(BIO)[1] p=0.667 # Sample size sam=sample(1 :n,floor(p*n),replace=FALSE) # Sample training data Training =BIO [sam,] # Sample testing data Testing = BIO [-sam,] # Build the HBR model HBR<-hbrfit(D ~ A+B) # Grab the coefficients HBR_intercept <- as.numeric(HBR\$coefficients[1]) HBR_coefA <- as.numeric(HBR\$coefficients[2]) HBR_coefB <- as.numeric(HBR\$coefficients[3]) # Predict response on testing data Testing\$pred <- HBR_intercept + HBR_coefA * Testing\$A + HBR_coefB *Testing\$B # Get errors Testing\$sq_error <- (Testing\$D-Testing\$pred)^2 Testing\$abs_error <- abs(Testing\$D-Testing\$pred)  MedAe <- median(Testing\$abs_error) MedAe MedAeSQ <-median(Testing\$sq_error) MedAeSQ lst[i]<-MedAe } lst mean(lst) lst\$mean ######################  ______________________________________________ [hidden email] mailing list -- To UNSUBSCRIBE and more, see https://stat.ethz.ch/mailman/listinfo/r-helpPLEASE do read the posting guide http://www.R-project.org/posting-guide.htmland provide commented, minimal, self-contained, reproducible code.
Reply | Threaded
Open this post in threaded view
|

## Re: Average of results coming from B=100 repetitions (looping)

 mean(unlist(lst)) On Tue, May 8, 2018 at 10:26 PM, varin sacha via R-help < [hidden email]> wrote: > >  Dear R-experts, > > Here below the reproducible example. I am trying to get the average of the > 100 results coming from the "lst" function. I have tried lst\$mean and > mean(lst). It does not work. > Any help would be highly appreciated. > > #################### > >  ## R script for getting MedAe and MedAeSQ from HBR model on Testing data > install.packages("robustbase") > install.packages( "MASS" ) > install.packages( "quantreg" ) > install.packages( "RobPer") > install.packages("devtools") > library("devtools") > install_github("kloke/hbrfit") > install.packages('http://www.stat.wmich.edu/mckean/Stat666/> Pkgs/npsmReg2_0.1.1.tar.gz') > library(robustbase) > library(MASS) > library(quantreg) > library(RobPer) > library(hbrfit) > > # numeric variables > A=c(2,3,4,3,2,6,5,6,4,3,5,55,6,5,4,5,6,6,7,52) > B=c(45,43,23,47,65,21,12,7,18,29,56,45,34,23,12,65,4,34,54,23) > D=c(21,54,34,12,4,56,74,3,12,71,14,15,63,34,35,23,24,21,69,32) > > # Create a dataframe > BIO<-data.frame(A,B,D) > > # Create a list to store the results > lst<-list() > > # This statement does the repetitions (looping) > for(i in 1 :100) > { > > # randomize sampling seed > n=dim(BIO)[1] > p=0.667 > > # Sample size > sam=sample(1 :n,floor(p*n),replace=FALSE) > > # Sample training data > Training =BIO [sam,] > > # Sample testing data > Testing = BIO [-sam,] > > # Build the HBR model > HBR<-hbrfit(D ~ A+B) > > # Grab the coefficients > HBR_intercept <- as.numeric(HBR\$coefficients[1]) > HBR_coefA <- as.numeric(HBR\$coefficients[2]) > HBR_coefB <- as.numeric(HBR\$coefficients[3]) > > # Predict response on testing data > Testing\$pred <- HBR_intercept + HBR_coefA * Testing\$A + HBR_coefB > *Testing\$B > > # Get errors > Testing\$sq_error <- (Testing\$D-Testing\$pred)^2 > Testing\$abs_error <- abs(Testing\$D-Testing\$pred) > MedAe <- median(Testing\$abs_error) > MedAe > MedAeSQ <-median(Testing\$sq_error) > MedAeSQ > > lst[i]<-MedAe > } > lst > mean(lst) > lst\$mean > > ###################### > > ______________________________________________ > [hidden email] mailing list -- To UNSUBSCRIBE and more, see > https://stat.ethz.ch/mailman/listinfo/r-help> PLEASE do read the posting guide http://www.R-project.org/> posting-guide.html > and provide commented, minimal, self-contained, reproducible code. >         [[alternative HTML version deleted]] ______________________________________________ [hidden email] mailing list -- To UNSUBSCRIBE and more, see https://stat.ethz.ch/mailman/listinfo/r-helpPLEASE do read the posting guide http://www.R-project.org/posting-guide.htmland provide commented, minimal, self-contained, reproducible code.
Reply | Threaded
Open this post in threaded view
|

## Re: Average of results coming from B=100 repetitions (looping)

 In reply to this post by R help mailing list-2 mean(lst) ### See ?mean. A list cannot be an argument of mean. lst\$mean  ## nonsense! Don't guess -- read the docs. Here is an an example: > z <- list() > for(i in 1:5) z[i] <- i > z [[1]] [1] 1 [[2]] [1] 2 [[3]] [1] 3 [[4]] [1] 4 [[5]] [1] 5 > mean(z) [1] NA Warning message: In mean.default(z) : argument is not numeric or logical: returning NA > class(z) [1] "list" > z <- unlist(z) > mean(z) [1] 3 Cheers, Bert Bert Gunter "The trouble with having an open mind is that people keep coming along and sticking things into it." -- Opus (aka Berkeley Breathed in his "Bloom County" comic strip ) On Tue, May 8, 2018 at 12:26 PM, varin sacha via R-help < [hidden email]> wrote: > >  Dear R-experts, > > Here below the reproducible example. I am trying to get the average of the > 100 results coming from the "lst" function. I have tried lst\$mean and > mean(lst). It does not work. > Any help would be highly appreciated. > > #################### > >  ## R script for getting MedAe and MedAeSQ from HBR model on Testing data > install.packages("robustbase") > install.packages( "MASS" ) > install.packages( "quantreg" ) > install.packages( "RobPer") > install.packages("devtools") > library("devtools") > install_github("kloke/hbrfit") > install.packages('http://www.stat.wmich.edu/mckean/Stat666/> Pkgs/npsmReg2_0.1.1.tar.gz') > library(robustbase) > library(MASS) > library(quantreg) > library(RobPer) > library(hbrfit) > > # numeric variables > A=c(2,3,4,3,2,6,5,6,4,3,5,55,6,5,4,5,6,6,7,52) > B=c(45,43,23,47,65,21,12,7,18,29,56,45,34,23,12,65,4,34,54,23) > D=c(21,54,34,12,4,56,74,3,12,71,14,15,63,34,35,23,24,21,69,32) > > # Create a dataframe > BIO<-data.frame(A,B,D) > > # Create a list to store the results > lst<-list() > > # This statement does the repetitions (looping) > for(i in 1 :100) > { > > # randomize sampling seed > n=dim(BIO)[1] > p=0.667 > > # Sample size > sam=sample(1 :n,floor(p*n),replace=FALSE) > > # Sample training data > Training =BIO [sam,] > > # Sample testing data > Testing = BIO [-sam,] > > # Build the HBR model > HBR<-hbrfit(D ~ A+B) > > # Grab the coefficients > HBR_intercept <- as.numeric(HBR\$coefficients[1]) > HBR_coefA <- as.numeric(HBR\$coefficients[2]) > HBR_coefB <- as.numeric(HBR\$coefficients[3]) > > # Predict response on testing data > Testing\$pred <- HBR_intercept + HBR_coefA * Testing\$A + HBR_coefB > *Testing\$B > > # Get errors > Testing\$sq_error <- (Testing\$D-Testing\$pred)^2 > Testing\$abs_error <- abs(Testing\$D-Testing\$pred) > MedAe <- median(Testing\$abs_error) > MedAe > MedAeSQ <-median(Testing\$sq_error) > MedAeSQ > > lst[i]<-MedAe > } > lst > mean(lst) > lst\$mean > > ###################### > > ______________________________________________ > [hidden email] mailing list -- To UNSUBSCRIBE and more, see > https://stat.ethz.ch/mailman/listinfo/r-help> PLEASE do read the posting guide http://www.R-project.org/> posting-guide.html > and provide commented, minimal, self-contained, reproducible code. >         [[alternative HTML version deleted]] ______________________________________________ [hidden email] mailing list -- To UNSUBSCRIBE and more, see https://stat.ethz.ch/mailman/listinfo/r-helpPLEASE do read the posting guide http://www.R-project.org/posting-guide.htmland provide commented, minimal, self-contained, reproducible code.
Reply | Threaded
Open this post in threaded view
|

## Re: Average of results coming from B=100 repetitions (looping)

 In reply to this post by R help mailing list-2 On 5/8/2018 12:26 PM, varin sacha via R-help wrote: > >   Dear R-experts, > > Here below the reproducible example. I am trying to get the average of the 100 results coming from the "lst" function. I have tried lst\$mean and mean(lst). It does not work. > Any help would be highly appreciated > > #################### > >   ## R script for getting MedAe and MedAeSQ from HBR model on Testing data > install.packages("robustbase") > install.packages( "MASS" ) > install.packages( "quantreg" ) > install.packages( "RobPer") > install.packages("devtools") > library("devtools") > install_github("kloke/hbrfit") > install.packages('http://www.stat.wmich.edu/mckean/Stat666/Pkgs/npsmReg2_0.1.1.tar.gz') > library(robustbase) > library(MASS) > library(quantreg) > library(RobPer) > library(hbrfit) > > # numeric variables > A=c(2,3,4,3,2,6,5,6,4,3,5,55,6,5,4,5,6,6,7,52) > B=c(45,43,23,47,65,21,12,7,18,29,56,45,34,23,12,65,4,34,54,23) > D=c(21,54,34,12,4,56,74,3,12,71,14,15,63,34,35,23,24,21,69,32) > > # Create a dataframe > BIO<-data.frame(A,B,D) > > # Create a list to store the results > lst<-list() > <<>> You need to spend some time with the Introduction to R that came with your R installation.  First, lst in your example is not a function, it is a list. And as you found, the mean() function does not work on a list. Second, your "minimal reproducible" example could have been something like this lst <- list() for (i in 1:10) lst[i] <- i mean(lst)  # does not work The documentation for mean, ?mean, says that it is looking for a numeric or logical vector.  To convert your list to a numeric vector you could unlist() it. mean(unlist(lst)) Hope this is helpful, Dan -- Daniel Nordlund Port Townsend, WA  USA ______________________________________________ [hidden email] mailing list -- To UNSUBSCRIBE and more, see https://stat.ethz.ch/mailman/listinfo/r-helpPLEASE do read the posting guide http://www.R-project.org/posting-guide.htmland provide commented, minimal, self-contained, reproducible code.
Reply | Threaded
Open this post in threaded view
|

## Re: Average of results coming from B=100 repetitions (looping)

 Many thanks for all of you for your responses. Best Regards, SV Le mardi 8 mai 2018 à 21:58:37 UTC+2, Daniel Nordlund <[hidden email]> a écrit : On 5/8/2018 12:26 PM, varin sacha via R-help wrote: > >  Dear R-experts, > > Here below the reproducible example. I am trying to get the average of the 100 results coming from the "lst" function. I have tried lst\$mean and mean(lst). It does not work. > Any help would be highly appreciated > > #################### > >   ## R script for getting MedAe and MedAeSQ from HBR model on Testing data > install.packages("robustbase") > install.packages( "MASS" ) > install.packages( "quantreg" ) > install.packages( "RobPer") > install.packages("devtools") > library("devtools") > install_github("kloke/hbrfit") > install.packages('http://www.stat.wmich.edu/mckean/Stat666/Pkgs/npsmReg2_0.1.1.tar.gz') > library(robustbase) > library(MASS) > library(quantreg) > library(RobPer) > library(hbrfit) > > # numeric variables > A=c(2,3,4,3,2,6,5,6,4,3,5,55,6,5,4,5,6,6,7,52) > B=c(45,43,23,47,65,21,12,7,18,29,56,45,34,23,12,65,4,34,54,23) > D=c(21,54,34,12,4,56,74,3,12,71,14,15,63,34,35,23,24,21,69,32) > > # Create a dataframe > BIO<-data.frame(A,B,D) > > # Create a list to store the results > lst<-list() > <<>> You need to spend some time with the Introduction to R that came with your R installation.  First, lst in your example is not a function, it is a list. And as you found, the mean() function does not work on a list. Second, your "minimal reproducible" example could have been something like this lst <- list() for (i in 1:10) lst[i] <- i mean(lst)  # does not work The documentation for mean, ?mean, says that it is looking for a numeric or logical vector.  To convert your list to a numeric vector you could unlist() it. mean(unlist(lst)) Hope this is helpful, Dan -- Daniel Nordlund Port Townsend, WA  USA ______________________________________________ [hidden email] mailing list -- To UNSUBSCRIBE and more, see https://stat.ethz.ch/mailman/listinfo/r-helpPLEASE do read the posting guide http://www.R-project.org/posting-guide.htmland provide commented, minimal, self-contained, reproducible code.