0

データセットは次のようなものです。

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 < day1 / day8 <1.1」のようなものであることを意味します

4

1 に答える 1

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),  ].
于 2013-05-01T11:53:34.340 に答える