0

castreshape2パッケージから、呼び出しで直接渡された場合、一連の関数を処理できます。例えば:

library(reshape2)

d <- data.frame(variable="variable",value=rnorm(100))
cast(d, variable ~ ., c(mean,sd,max,min))

ただし、事前に関数のリストを作成しようとすると、これは機能しません。例えば:

summary.fun <- c(mean,sd,max,min)
cast(d, variable ~., summary.fun) 

この特定の動作を処理するキャストのコードを調べましたが、正直なところ、それが何をしているのかわかりません。

if (length(fun.aggregate) > 1) 
        fun.aggregate <- do.call(funstofun, as.list(match.call()[[4]])[-1])

事前に作成された関数のリストを変数として渡す方法はありますcast()か?

4

1 に答える 1

4

関数は入力引数を使用する必要があります。関数castは、値を最初の引数として関数に自動的に渡します。summary.funさらに、を使用して関数であるRを指定する必要があります<- function()

summary.fun <- function(x) list(mean(x), sd(x), max(x), min(x))

この関数をで試してくださいcast

library(reshape)

d <- data.frame(variable="variable",value=rnorm(100))

cast(d, variable ~ ., summary.fun)

@handleyが指摘したように、これはパッケージのcast関数では機能しません。とを見てreshape2ください。dcastacast

于 2012-12-01T10:46:13.153 に答える