У меня есть фрейм данных, похожий на этот:
nr grp start stop l1 ratio
11 1 300 350 + 1.0
12 1 400 450 - 0.8
13 1 50 550 + 1.0
14 1 600 650 - 1.0
21 1 800 850 - 1.0
36 1 1000 1050 + 0.0
37 1 1100 1200 + 0.9
38 1 1250 1300 - 0.7
39 1 1350 1400 + 1.0
и мне нужно найти последовательности последовательных чисел и переместить их в новый df.
Мне нужно вытащить всю первую строку последовательности и заменить только значение для столбца остановки, взятого из последней строки последовательности.
Конечный df должен выглядеть так:
nr grp start stop l1 ratio
11 1 300 650 + 1.0
36 1 1000 1400 - 0.8
Я пытался сделать это так:
t1<- read.table('aa.txt',sep = "\t", header=TRUE)
head(t1)
t1$chk <- NA
dl <- length(t1$nr)
for (i in 1:dl){
if(isTRUE(t1$nr[i]+1 == t1$nr[i+1])){
t1$chk[i] <- "t"
}else{
t1$chk[i] <- 'F'
}
}
и я получаю это:
nr grp start stop l1 ratio chk
11 1 300 350 + 1.0 t
12 1 400 450 - 0.8 t
13 1 50 550 + 1.0 t
14 1 600 650 - 1.0 F
21 1 800 850 - 1.0 F
36 1 1000 1050 + 0.0 t
37 1 1100 1200 + 0.9 t
38 1 1250 1300 - 0.7 t
39 1 1350 1400 + 1.0 F
После этого я хотел переместить все строки, которые в столбце chk имеют "t", в новый df. К сожалению, у меня есть проблема, потому что последнее число последовательностей не включено в это. У кого-нибудь есть идеи как это решить?