gpt4 book ai didi

r - 用r中的余数循环 block 的优雅方式?

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

我正在寻找某种方法来迭代 R 中的块,但是现在我必须在末尾添加一个额外的语句来捕获余数,如果项目的数量没有均匀地划分为块大小。例如:

for (i in 1:(nrow(dataframe)/chunksize)){
(do something with chunk)
}

remainder <- nrow(dataframe) %% chunksize
(do something with dataframe[(length(dataframe)-remainder):length(dataframe),])

有没有更优雅的方法来做到这一点?我假设这种类型的操作在其他代码中经常完成。

最佳答案

如果您想保留 for构造:

chunk_size <- 7
for (i in seq(1, nrow(mtcars), chunk_size)) {

seq_size <- chunk_size
if ((i + seq_size) > nrow(mtcars)) seq_size <- nrow(mtcars) - i + 1

cat(i, seq_size, "\n")

}

1 7
8 7
15 7
22 7
29 4

您可以使用它来处理您需要的索引。

这是一个没有 if :
chunk_size <- 7
chunks <- ggplot2::cut_interval(1:nrow(mtcars), length=chunk_size, labels=FALSE)
for (i in unique(chunks)) {
print(nrow(mtcars[which(chunks==i),]))
}

关于r - 用r中的余数循环 block 的优雅方式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32952168/

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