0
df(自由度)ベクトルと確率ベクトルpを持つ分位関数を使ってt分布データを生成したい。forループなしでt分布データを生成する
p <- c(0.01, 0.001, 0.0001)
dof <- c(seq(1, 5, by = 1))
次のようにループを使用してジョブを実行できます。
for (i in dof) {(qt(1-p, df=i))}
forループを使用しないと、私はlapply関数を使用できますが、リストとして出力します。
val <- lapply(dof, function(d) qt(1-p, df=d))
どのようにループを回避し、出力をdata.frameとして取得できますか。
編集:
sapply結果を使用しては正しいですが、フォームをトランスポーズ:
val <- sapply(dof, function(d) qt(1-p, df=d))
[,1] [,2] [,3] [,4] [,5]
[1,] 31.82052 6.964557 4.540703 3.746947 3.364930
[2,] 318.30884 22.327125 10.214532 7.173182 5.893430
[3,] 3183.09876 70.700071 22.203742 13.033672 9.677566
なぜループを回避しようとしていますか、すべての値が数値のときにdata.frameを取得しようとしているのはなぜですか? –
私はベクトル操作を行うことができます。実際のデータセットはかなり大きいです。 – ravi
リストは、行列と同じベクトルです。 data.frameを操作することは、大きなデータセットに関してはあまり効率的ではありません。編集に関しては、 't'にラップしてください。 –