2017-06-28 17 views
0

作業目的のために、行列の全体的な分位点を見つける必要があります。私は行列を2次元の列に "unlist"または "break"することができ、Rはベクトルに "quantile"関数を簡単に適用できることを知っています。行列全体の分位数を計算する

しかし、私は行列をリストから外して分位点を計算すると、リストにないデータを元のデータに戻す方法はわかりません。誰かが私にこれを達成する方法を教えてもらえますか?あるいは私の目的を達成するための代替手段がありますか?

答えて

1

あなたのデータ構造はあまり明確ではありません。あなたが実際にunlistか何かする必要はありませんクラスmatrixのオブジェクトを持っている場合は、マトリックス上で直接quantileを呼び出すことができます。

> m = matrix(1:100, nrow = 10) 
> quantile(m, probs = c(.25, .5, .75)) 
    25% 50% 75% 
25.75 50.50 75.25 

あなたはdata.frameを持っている場合は、あなたがunlistする必要があります(または変換しませんマトリックスにはas.matrix)、保存したデータフレームを上書きする必要はありません。

> my_df = data.frame(c1 = 1:5, c2 = 11:15) 
> quantile(unlist(my_df), probs = c(.25, .5, .75)) 
    25% 50% 75% 
3.25 8.00 12.75 
> my_df 
    c1 c2 
1 1 11 
2 2 12 
3 3 13 
4 4 14 
5 5 15 

最後に、my_dfはまだデータフレームです。リストにないバージョンのmy_dfを再割り当てしない限り、変更されません。

関連する問題