我需要为每一个完整的旋转(例如360 °)创建bin,并且bin的长度会有所不同。我创建了一个for循环,但对于100,000+行来说,它很慢。我尝试使用dplyr和/或其他非循环方法来实现,但不清楚在哪里以及如何声明截止值。我找到的dplyr或cut()
示例似乎都没有解决我的问题。
样本数据:
x <- c(seq(90, .5, length.out = 3),
seq(359.5, .2, length.out = 5),
seq(358.9, .8, length.out = 8),
seq(359.2, .3, length.out = 11),
seq(358.3, .1, length.out = 15))
df <- data.frame(x)
df$bin <- NA
df[1,2] <- 1
对于循环:
for(i in 2:nrow(df)) {
if(df[i,1] < df[i-1,1]) {
df[i,2] <- df[i-1,2]
} else {
df[i,2] <- df[i-1,2] + 1
}
}
如何在不使用循环的情况下获得df $bin中的结果?
1条答案
按热度按时间ttygqcqt1#
看起来你可以:
比较: