在正在运行的函数中使用apply时出错

时间:2016-02-17 14:17:36

标签: r function loops apply

我试图使用apply使用我的功能但没有成功。 df举例说明了我的真实数据框架row

   df <- 'Probe.Set.ID GT1000.CEL GT1001.CEL GT1002.CEL GT1003.CEL GT1004.CEL GT1005.CEL GT1006.CEL GT1007.CEL GT1008.CEL
    AX-100108664  0.8421723  0.9085748  0.9175095  0.9152894 0.9308451 0.09649999 0.06152165  0.1217587  0.9176847'

df <- read.table(text=df, header=T)

使用我的功能似乎没有任何问题:

myfunction <- function(thetaR){
  numc <- ncol(thetaR)/2
  theta1 <- thetaR[,1:numc] 
  R <- thetaR[,(numc+1):length(thetaR)]
  interp <- approx(theta1[2:length(theta1)], R[2:length(R)], n =1500)
  res <- numeric(length(theta1))
for(i in 2:length(theta1)){
  res[i] <- i
  x <- interp$x
  your.number=theta1[[i]]
  num <- which(abs(x-your.number)==min(abs(x-your.number)))
  res[i] <- interp$y[[num]]
 }
return(res)
}

myfunction(df) 
  

[1] 0.00000000 0.09649999 0.06152762 0.12175866 0.91457862

但是,我的真实数据有几行。因此,我尝试使用apply,但我收到了错误:

apply(df,1,myfunction)
  

1中的错误:numc:长度为0的参数

有什么想法让它发挥作用?

0 个答案:

没有答案