从另一个问题发展而来:
识别R中重复数字的序列 https://stackoverflow.com/questions/7509381/identifying-sequences-of-repeated-numbers-in-r/15328802#15328802
我已经使用该问题的答案来识别数据中的序列,这不是问题,但是在识别不同数字的序列时我陷入困境,例如:序列可能是:126,126,25 而不是重复的数字,
我当前使用的代码与上面的问题(rle)相同
样本数据:
d<-read.table(text='Date.Time Aerial
794 "2012-10-01 08:18:00" 1
795 "2012-10-01 08:34:00" 1
796 "2012-10-01 08:39:00" 1
797 "2012-10-01 08:42:00" 1
798 "2012-10-01 08:48:00" 1
799 "2012-10-01 08:54:00" 1
800 "2012-10-01 08:58:00" 1
801 "2012-10-01 09:04:00" 1
802 "2012-10-01 09:05:00" 1
803 "2012-10-01 09:11:00" 1
1576 "2012-10-01 09:17:00" 2
1577 "2012-10-01 09:18:00" 2
804 "2012-10-01 09:19:00" 1
805 "2012-10-01 09:20:00" 1
1580 "2012-10-01 09:21:00" 2
1581 "2012-10-01 09:23:00" 2
806 "2012-10-01 09:25:00" 1
807 "2012-10-01 09:32:00" 1
808 "2012-10-01 09:37:00" 1
809 "2012-10-01 09:43:00" 1', header=TRUE, stringsAsFactors=FALSE, row.names=1)
识别重复数字序列的代码(相同数字重复 4 次):
tmp <- rle(d$Aerial)
d$newCol <- rep(tmp$lengths>=4, times = tmp$lengths)
但是我不知道如何识别包含不同数字的序列,例如序列可能是:1,2,2,1(如 d$Aerial 中)在“2012-10-01 09:11:00”
有各种图案。数据是在给定时间在给定天线上检测到的信号,但为了保持问题的开放性,我将其简化为上面的内容。因此模式为 1,2,2,1,即在空中检测 1,然后 2,然后 2,然后 1(在空中列中)。根据我的数据,当这种模式发生时,它表明动物的行为运动。如果我能够识别它,我就可以对其进行更多计算。
上面的代码表示一个数字重复4次,但无法识别4个彼此不同的数字的重复:1,2,2,1
这个序列 (1,2,2,1) 可能会在数据中出现多次,我想每次都识别它。