“合并”共有6713行,而“出价”则有7656334行:
i = 1
for(i in 1:length(combined$bidder_id)){
combined$no_of_bids[i] = count(bids[bids$bidder_id == combined$bidder_id[i],])
i = i + 1
}
运行此代码大约需要30分钟。有什么建议可以加快速度吗?
答案 0 :(得分:0)
在这种情况下,循环比其他R函数要慢
例如,tidyverse
风格的group_by()
可以更快地完成工作
library(tidyverse)
bids <- tibble(bidder_id=sample(1:1000, 100000, replace = TRUE))
combined <- bids %>%
group_by(bidder_id) %>%
summarise(no_of_bids = n())
答案 1 :(得分:0)
应该是:
library(dplyr)
left_join(combined,
count(bids, bidder_id),
by = 'bidder_id')
下一个问题,请发布一个可复制的示例。