Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R 如何继续圈数_R_Loops_Count_Lag - Fatal编程技术网

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

我有一个简单的问题,不幸的是,我似乎无法正确回答(对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 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)))

谢谢,太好了!很高兴有这个帮助;不知道这个功能,所以也从来没有想过要找这个!