从R范围的数据框中获取具有特定值内的距离的行

时间:2019-06-18 22:44:12

标签: r dataframe

如果我有一个范围的数据框:

start end
12    18
22    30
35    40
49    70
81    90
102   110
120   124

如何获取行距在R中某个上下阈值之内的行(即,下一行的开始-前一行的末尾在该阈值之内)?

比方说,我想得到的行距在5到10之间,那么我想得到:

start.1 end.1 start.2 end.2
22      30    35      40
35      40    49      70
102     110   120     124

在这里,开始2-结束1始终在5到10之间。

2 个答案:

答案 0 :(得分:2)

$("#Login_Logout_Time").prop('readOnly', true)

答案 1 :(得分:1)

使用基数R的一种方法

#Get the difference between consecutive start and end values
diffs <- df$start[-1] - df$end[-nrow(df)] 

#Get indices where the condition of difference is satisfied
rows_inds <- which(diffs >= 5 & diffs <= 10)

#cbind the rows present in row_inds and next row 
df1 <- cbind(df[rows_inds, ], df[rows_inds + 1, ])

#Make the columns name unique 
names(df1) <- make.unique(names(df1))

df1
#  start end start.1 end.1
#2    22  30      35    40
#3    35  40      49    70
#6   102 110     120   124