【发布时间】:2021-05-07 04:43:03
【问题描述】:
我正在使用 R 编程语言。我很想知道是否有一种方法可以在不实际运行该过程的情况下估计一个过程的实际运行时间(相对于您的计算机的“强度”)。
例如,假设我想确定以下过程在我的计算机上运行需要多长时间:
library(caret)
library(rpart)
#generate data
a = rnorm(80000, 10, 10)
b = rnorm(80000, 10, 5)
c = rnorm(80000, 5, 10)
group <- sample( LETTERS[1:2], 80000, replace=TRUE, prob=c(0.5,0.5))
group_1 <- 1:80000
#put data into a frame
d = data.frame(a,b,c, group, group_1)
d$group = as.factor(d$group)
e <- d
vec1 <- sample(200:300, 5)
vec2 <- sample(400:500,5)
vec3 <- sample(700:800,5)
z <- 0
df <- expand.grid(vec1, vec2, vec3)
df$Accuracy <- NA
for (i in seq_along(vec1)) {
for (j in seq_along(vec2)) {
for (k in seq_along(vec3)) {
# d <- e
d$group_2 = as.integer(ifelse(d$group_1 < vec1[i] , 0, ifelse(d$group_1 >vec1[i] & d$group_1 < vec2[j] , 1, ifelse(d$group_1 >vec2[j] & d$group_1 < vec3[k] , 2,3))))
d$group_2 = as.factor(d$group_2)
TreeFit <- rpart(group_2 ~ ., data = d[,-5])
pred <- predict(
TreeFit,
d[,-5], type = "class")
con <- confusionMatrix(
d$group_2,
pred)
#update results into table
#final_table[i,j] = con$overall[1]
z <- z + 1
df$Accuracy[z] <- con$overall[1]
}
}
}
head(df)
我可以将这个过程“夹在”下面的代码行之间,并确定花费了多长时间
start_time <- proc.time()
#copy and paste the entire block of code here
proc.time() - start_time
#results
user system elapsed
51.86 0.36 52.22
但是假设这是一个非常漫长的过程,我想粗略估计一下我的计算机在实际运行之前需要多长时间 - 这可能吗?
谢谢
【问题讨论】:
标签: r loops time runtime systemtime