0

関数内で ddly() を使用するのに苦労しています。以下は、私が達成しようとしていることをうまく説明しています。

library(plyr)
dat <- data.frame(var1 = rnorm(10), g = rep(1:2, 5))
dat

## Works for a particular variable "var1"
ddply(dat, .(g), summarize, m.ll = t.test(var1)$conf.int[1])

## ... but not inside a function
myddply <- function(x){
    res <- ddply(dat, .(g), summarize, m.ll = t.test(x)$conf.int[1])
    return(res)
}
myddply(x = "var1")

私はうまくいくと思っeval(parse(...))たが、役に立たなかった。

myddply <- function(x){
    res <- ddply(dat, .(g), summarize, m.ll = t.test(eval(parse(text = x)))$conf.int[1])
    return(res)
}
myddply(x = "var1")
4

1 に答える 1

2

これには使用しないでくださいsummarize:

myddply <- function(x){
  res <- ddply(dat, .(g), 
                 function(df) setNames(t.test(df[,x])$conf.int[1], "m.ll"))
  return(res)
}
于 2013-09-16T08:53:13.143 に答える