パッケージからsummarize
を使用して要約統計量を出力しようとしています。 統計値を2小数点以下に丸めます。 round
をsummarize
に設定すると、エラーメッセージが表示されます。丸め集計関数の結果がエラー
library(rockchalk)
M1 <- structure(c(0.18, 0.2, 0.24, 0.35, -0.22, -0.17, 0.28, -0.28, -0.14, 0.03, 0.87, -0.2, 0.06, -0.1, -0.72, 0.18, 0.01, 0.31, -0.36, 0.61, -0.16, -0.07, -0.13, 0.01, -0.09, 0.26, -0.14, 0.08, -0.62, -0.2, 0.3, -0.21, -0.11, 0.05, 0.06, -0.28, -0.27, 0.17, 0.42, -0.05, -0.15, 0.05, -0.07, -0.22, -0.34, 0.16, 0.34, 0.1, -0.12, 0.24, 0.45, 0.37, 0.61, 0.9, -0.25, 0.02), .Dim = c(56L, 1L))
#This works
round(apply(M1, 2, mean),2)
#This works
summaryround <- function(x) {round(summary(x),2)}
apply(M1, 2, summaryround)
#This gives error "non-numeric argument"
round(apply(M1, 2, summarize),2)
#Thought this would work but also gives error "non-numeric argument"
summarizeround <- function(x) {round(summarize(x),2)}
apply(M1, 2, summarizeround)
私はsummary
の出力を丸めることができますが、 を使用したいのですが、私は同じプリントアウトで尖度と歪度の出力を得たいと思っています(もちろん、summary
とkurtosis
を組み合わせた独自の関数を作成できます。避けられれば)。
EDIT:実際には大きなデータフレームでこれを実行する必要があります。再現可能な例を簡単にすると思ったので、それを1列の行列に変換しました。
Psidomでは、「x」を取得するのではなく列名を保持する方法を知っていますか?あなたのコードは素晴らしいですが、私は数百の列を持つデータフレーム上でこれを実行しており、それらの列名が必要です。ありがとう! – Krug
summaryList < - lapply(as.data.frame(M1)、summarizeround)で2つのステップに分割できます。 summaryDf < - as.data.frame(do.call(cbind、summaryList)) 'を呼び出し、その名前をreusltデータフレーム' names(summaryDf)< - names(summaryList) 'に割り当てます。 – Psidom