【发布时间】:2020-12-03 16:12:32
【问题描述】:
我尝试优化我几周前编写的函数。
它变得更好,但它仍然很慢。所以我使用了Rprof(),发现split() 花费的时间最多,这让我觉得这个功能可以做得更好。
可以吗?!
normDist_V2 <- function(size=1e5, precision=1, ...)
{
data <- rnorm(size)
roundedData <- round(data, precision)
framedData <- data.frame(cbind(data, roundedData))
factoredData <- split(framedData$data, framedData$roundedData)
actualsize <- (size)/10^precision
X <- names(factoredData)
Probability <- sapply(factoredData, length) / actualsize
plot(X, Probability, ...)
}
当前速度:
system.time(normDist_V2(size=1e7, precision = 2)) #11.14 sec
【问题讨论】:
-
先生您好。桑帕蒂。您能否发布数据示例,以便我们可以在尽可能接近您的环境的情况下运行代码?
标签: r performance optimization