我试图使用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的参数
有什么想法让它发挥作用?