【问题标题】:Replace Loops in R function替换 R 函数中的循环
【发布时间】:2011-02-17 12:17:36
【问题描述】:

我是 R 新手,我无法弄清楚如何在下面的函数中替换 FOR 循环。该函数估计总体均值。任何帮助都将不胜感激。谢谢!

 myFunc<- function(){


myFRAME <- read.csv(file="2008short.csv",head=TRUE,sep=",")

meanTotal <- 0

for(i in 1:100)
{

mySample <- sample(myFRAME$TaxiIn, 100, replace = TRUE)

tempMean <- mean(mySample)

meanTotal <- meanTotal + tempMean


}

cat("Estimated Mean: ", meanTotal/100, "\n") #print result

}

【问题讨论】:

    标签: r loops optimization


    【解决方案1】:

    正如 Rob 所说,您的循环是不必要的,但本着问题的精神,“replicate()” 函数可以直接替换你的 for 循环。像这样:

       myFunc <- function(){
          myFRAME <- read.csv(file="2008short.csv",head=TRUE,sep=",")
          meanTotal <- <- mean(replicate(100,mean(sample(myFRAME$TaxiIn,100,T))))
          cat("Estimated Mean: ", meanTotal, "\n")
        }
    

    【讨论】:

      【解决方案2】:

      您的代码采用 100 个样本均值的平均值,每个均基于 100 个观测值的样本。这相当于取 10,000 个观测值的平均值。所以下面会做同样的事情:

      myFunc <- function(){
        myFRAME <- read.csv(file="2008short.csv",head=TRUE,sep=",")
        meanTotal <- sample(myFRAME@TaxiIn,10000,replace=TRUE)
        cat("Estimated Mean: ", meanTotal, "\n")
      }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-08-08
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多