1

dlply()でsmooth.spline()関数を試してみると、「オブジェクト'...'が見つかりません」というエラーが表示されます。以下の例は、いくつかのデータを作成し、「lm」がどのように機能するかを示していますが、「smooth.spline」は機能しません。関数の引数で算術演算を行っていますが、それがエラーの理由ではないことに注意してください。

#some data:
df <- data.frame(count=rep(1:5,2),VSS=runif(10,0.45,0.55), 
      TSS=runif(10,0.9,1.3),sl=c(rep("a",5),rep("b",5)))
#works:
dlply(df,.(sl),lm,formula=VSS/TSS~count)
#doesn't work:
dlply(df,.(sl),smooth.spline,x=count,y=VSS/TSS,all.knots=TRUE)
#output:
Error in xy.coords(x,y) : Object 'VSS' not found

何か案は???

4

1 に答える 1

2

うーん、あまりにも絡み合った評価と環境が問題なのだろう。私は通常、これらのことと戦うことはありません。回避するだけです。

foo <- function(x,xvar,yvar,...){
    smooth.spline(x = x[,xvar],y = x[,yvar],...)
}
df$rat <- with(df,VSS/TSS)
dlply(df,.(sl),foo,xvar = "count",yvar = "rat",all.knots = TRUE)

しかし、これを行うようにだます方法があるかもしれdlplyません、私にはわかりません.

于 2012-06-17T22:30:34.810 に答える