私はR関数が新しく、常にパッケージを使用してループを避けることをお勧めします。しかし、今私は特定の質問のためのループを作成しようとしています。範囲に基づいてデータセットをサブセット化したいと思います。私は以下のコードは自明であると思う。サブセット()を使用してデータの範囲を選択する
dt = as.data.frame(sample(1:100))
names(dt) = "num"
subs.it <- function(x) {
subs <- subset(dt, num >= (x - 5) & num <= (x + 5))
return(subs)
}
subs.it(c(15, 50))
間違っ出力:
num
44 55
47 20
65 19
77 17
83 12
91 16
92 51
100 54
正しい:
num
4 15
18 11
47 20
50 13
54 10
65 19
66 14
77 17
82 18
83 12
91 16
17 48
19 53
29 45
33 52
39 46
44 55
45 50
49 49
89 47
92 51
100 54
私は私が間違っているのものを見つけることができません。それはあなたが探している機能のように思える
おかげ
あなたは本質的にRの観点からは無意味なすべての 'x> = c(10,45)&x <= c(20,55)'を要求しています。おそらく、あなたは '(x> = ...&x <= ...)| 'のような" or "で2つの条件を結合させることを意味します。 (x> = ...&x <= ...) '? – joran
あなたは何をすることをお勧めしますか? – klo
を使用して、範囲に基づいてデータセットをサブセット化します。私は複数の番号を持っています。たとえば、数値が15の場合は10から20の部分集合、数値が50の場合は45から55の部分集合です。最終的なデータセットの範囲は10から20,45から55です。 – klo