数据集是这样的:
daily.sample
day1 day2 day3 day4 day5 day6 day7 day8 day9 day10 day11 day12 day13 day14
132304 919 420 1021 331 1012 606 256 58 302 87 859 1140 603 1472
121945 419 1048 541 336 1086 796 95 578 1419 985 752 570 865 242
130055 3036 1473 3043 3291 4869 2902 5306 4480 4820 254 2652 2529 3346 995
我想选择满足以下条件的行: 它的 day1 值是关闭到它的 day8 值 它的 day2 值是关闭到它的 day9 值 它的 day3 值是关闭到它的 day10 值 ......
关闭我的意思是差异在一个范围内,或类似的东西
“0.9
答案 0 :(得分:1)
您可以通过以下方式从左侧部分简单地减去data.frame
的右侧部分:
distance <- abs(daily.sample[ , 1:7, drop = FALSE ] - daily.sample[ , 8:14, drop =FALSE ])
相应构建比例:
ratio <- daily.sample[ , 1:7, drop = FALSE ] / daily.sample[ , 8:14, drop =FALSE ]
然后,您可以根据要检查的日期简单地对数据进行分组。
daily.sample[ distance[ ,"day1" ] < 1000, ]
day1 day2 day3 day4 day5 day6 day7 day8 day9 day10 day11 day12 day13 day14
132304 919 420 1021 331 1012 606 256 58 302 87 859 1140 603 1472
121945 419 1048 541 336 1086 796 95 578 1419 985 752 570 865 242
或者对于范围内的比率:
daily.sample[ ratio[ , "day1"] > 0.7 & ratio[ , "day1"] < (10/7), ]
day1 day2 day3 day4 day5 day6 day7 day8 day9 day10 day11 day12 day13 day14
121945 419 1048 541 336 1086 796 95 578 1419 985 752 570 865 242
如果对于后一种情况,范围总是(min.ratio,1 / min.ratio),您可以将比率计算为ratio[ ratio < 1 ] <- 1 / ratio[ ratio < 1 ]
,而不仅仅是子集:
daily.sample[ ratio[ , "day1"] < (10/7), ].