R 如何继续圈数
我有一个简单的问题,不幸的是,我似乎无法正确回答(对R来说是非常陌生的)。 我有一个表示圈数的变量。一段时间后,圈数被重置,尽管我想让它继续计数 根据我的研究,我可能需要一个循环来完成这项工作,但我似乎无法让它工作 有谁能帮我一下吗 提前多谢 以下是一个示例数据集和预期结果:R 如何继续圈数,r,loops,count,lag,R,Loops,Count,Lag,我有一个简单的问题,不幸的是,我似乎无法正确回答(对R来说是非常陌生的)。 我有一个表示圈数的变量。一段时间后,圈数被重置,尽管我想让它继续计数 根据我的研究,我可能需要一个循环来完成这项工作,但我似乎无法让它工作 有谁能帮我一下吗 提前多谢 以下是一个示例数据集和预期结果: dataset <- data.frame(lap = c(1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,1,1,1,2,2,2,2,3,3,3,1,1,1,2,2,2,2)) expected
dataset <- data.frame(lap = c(1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,1,1,1,2,2,2,2,3,3,3,1,1,1,2,2,2,2))
expected outcome<-data.frame(lap = c(1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,6,6,6,6,7,7,7,8,8,8,9,9,9,9))
dataset您可以使用rle
,它计算每个重复数字的次数,然后使用rep
重建值
lap <- c(1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,1,1,1,2,2,2,2,3,3,3,1,1,1,2,2,2,2)
rle_lap <- rle(lap)
expected <- data.frame(lap = rep(1:length(rle_lap$lengths), rle_lap$lengths))
lap您也可以使用dplyr
:
library(dplyr)
dataset %>% mutate(expected = cumsum(lap != dplyr::lag(lap, 1, default = 0)))
谢谢,太好了!很高兴有这个帮助;不知道这个功能,所以也从来没有想过要找这个!