2017-12-24 11 views
1

私はいくつかのシミュレートされたデータを作成しようとしています。クラスター化されたデータを作成するために、私は処方者が1つまたは複数の地方健康地域(LHA)で働くかどうかを指定しました。現在、私はLHAに基づいて患者の処方箋を割り当てようとしています。そのコードは次のコードブロックにあります。1つの数字だけのサンプル

for (i in seq_along(data$LHA)) { 
    data$prescriber_id[i] <- sample(x = number_of_LHAs_worked$prescriber_id[ 
    number_of_LHAs_worked$assigned_LHAs_2 == data$LHA[i]], 
            size = 1) 
} 

このループはサンプル関数に与えられたXの複数のLHA(すなわち、長さが処方が原因の挙動にのみLHAで動作する場合、それは失敗し、しかし1よりも大きい場合に処方に適していますサンプル関数。

sample(x = 154, size = 1) 

X 1つだけ番号を与えられた場合、Rは、1からXまでのインデックスを作成し、ランダムに、この範囲内の数値を選択する。

Iは、溶液を働いてきたものの私の目的のために、私は他の人がouをサンプル関数をより一貫して機能させるための方法。特に、指定されたセットのみを使用するようにサンプル関数を強制します。

sample(x = 154:155, size = 1) # here the function chooses only a number in the set {154, 155}. 
+0

そこで質問が正確に何ですか?あなたがサンプルに数字だけを入力すると、rは1から入力した数字までのベクトルを作成します。その理由は、あなたが番号からサンプリングすることができないからです。それはサンプリングではありません。サンプリングには確率が含まれており、それが単なる数字であればそれは確かな出来事です。 – Onyambu

+1

@Onyambuそれを許可すれば、1つのアイテムが100%確率で選択されるセットからサンプリングを考えてみましょう。選抜の100%確率はまだサンプリングされている(到達困難な集団の調査における確率的サンプリングを考慮する)。 私の質問は単純に、長さの設定に関係なく、xをセットとして扱うためにRでサンプル関数を作りたいと思います。コメントありがとうございました。 –

答えて

1

?sampleその例で答えを提供:

set.seed(47) 

resample <- function(x, ...) x[sample.int(length(x), ...)] 

# infers 100 means 1:100 
sample(100, 1) 
#> [1] 98 

# stricter 
resample(100, 1) 
#> [1] 100 

# still works normally if explicit 
resample(1:100, 1) 
#> [1] 77 
+0

ありがとうございました、ドキュメントでこれを見ていませんでした。 –

関連する問題