【发布时间】:2019-09-08 06:48:26
【问题描述】:
假设我有一个简单的 for 循环,它向数据帧添加随机值。
person <- c("Clark Kent", "Bruce Wayne", "Tony Stark", "Carol Danvers")
sleep_time <- c(8, 1, 3, 6)
data <- data.frame(person, sleep_time)
for (i in 1:length(data$person)) {
idle <- sample(20:32, 1)
data$idle_time[i] <- idle
}
我将如何使用 R 的矢量化功能编写此程序以将过程加速到最快?我知道不鼓励使用 for 循环,但也读到 apply 函数不会快太多。
如果这个问题与其他问题相似,我深表歉意。我不熟悉使用 R 的矢量化功能,在理解如何在循环和更快的矢量化形式之间进行转换时遇到了一些麻烦。
如果您需要更多信息,请告诉我。
谢谢。
【问题讨论】:
-
这是你想要的吗? -
data$idle_time <- sample(20:32, nrow(data), replace = T)
标签: r performance for-loop vectorization apply