gpt4 book ai didi

r - 循环遍历数据框中的行

转载 作者:行者123 更新时间:2023-12-04 06:59:06 24 4
gpt4 key购买 nike

假设我出于某种原因需要遍历数据框中的行。

我创建了一个简单的 data.frame

df <- data.frame(id = sample(1e6, 1e7, replace = TRUE))

似乎 f2 比 f1 慢得多,而我预计它们是等效的。
f1 <- function(v){
for (obs in 1:(1e6) ){
a <- v[obs]
}
a
}
system.time(f1(df$id))

f2 <- function(){
for (obs in 1:(1e6) ){
a <- df$id[obs]
}
a
}
system.time(f2())

你知道为什么吗?它们使用的内存量是否完全相同?

最佳答案

如果你改为这样写你的时间并认识到 df$x真的是一个函数调用(到 `$`(df,x) )神秘消失了:

system.time(for(i in 1:1e6) df$x)
# user system elapsed
# 8.52 0.00 8.53
system.time(for(i in 1) df$x)
# user system elapsed
# 0 0 0

关于r - 循环遍历数据框中的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30513760/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com