Jak przekazać zmienne do funkcji niestandardowej w ddply?

Rozważ następujące dane:

d = data.frame(
    experiment = as.factor(c("foo", "foo", "foo", "bar", "bar")),
    si = runif(5),
    ti = runif(5)
)

Chciałbym wykonać test korelacji dlasi iti, dla każdegoexperiment poziom czynnika. Więc pomyślałem, że ucieknę:

ddply(d, .(experiment), cor.test)

Ale jak mam przekazać wartościsi iti docor.test połączenie? Próbowałem tego:

> ddply(d, .(experiment), cor.test, x = si, y = ti)
Error in .fun(piece, ...) : object 'si' not found
> ddply(d, .(experiment), cor.test, si, ti)
Error in match.arg(alternative) : 
  'arg' must be NULL or a character vector

Czy brakuje mi czegoś oczywistego? Theplyr dokumentacja nie zawiera dla mnie żadnego przykładu. Większość poleceń, które widzę, dotyczy tylkosummarize jako wywołanie funkcji, ale robiąc zwykłe rzeczy, z których byłem przyzwyczajonysummarize nie działa, jak widać powyżej.

questionAnswers(2)

yourAnswerToTheQuestion