Hill方程R脚本的问题

时间:2018-04-12 07:00:13

标签: r statistics

我找到了以下R脚本here,用于将您的数据与Hill方程拟合以获得EC50等。
我是R的新手,因此遇到了问题 错误消息是

  

FUN(X [[i]],...)出错:     仅在具有所有数字变量的数据框上定义

到目前为止,我发现它可能是我的数据存在问题,但即使我直接在脚本中输入一些数据,我也会收到此错误消息。
如果有人能指出我正确的方向,我会非常高兴。谢谢!

这是我的"修改过的"我输入的一些数据的脚本:

library(nlme)
library(intervals)

conc <- c(500, 250, 125, 62, 31, 15)  
Fnorm <- c(818, 869, 865, 868, 885, 895)  
DataSet <- data.frame(conc, Fnorm)  
Hill1<-function(x, Em, n, D){Em/(1 + 10^(n * (D - x)))}  
EstH.Pop<-function(DataSet)
    {InitVal<-function(DataSet){
          xy<-sortedXyData(DataSet$LogC,DataSet$Response,DataSet)
          Em<-max(xy[c(2)])
          D<-NLSstClosestX(xy,Em/2)
          n<-1
          value<-c(Em,n,D)
          value}  
DataSet.nlme<-nlme(Response~Hill1(LogC,Em,n,D),DataSet,fixed=Em+n+D~1,random=Em+D+n~1,groups=~Identity,weights=varPower(),cor=corAR1(),start=c(Em=InitVal(DataSet)[c(1)],n=InitVal(DataSet)[c(2)],D=InitVal(DataSet)[c(3)]))}  
summary(EstH.Pop(DataSet))  
CI.par<-function(DataSet){intervals(EstH.Pop(DataSet))}  
CI.par(DataSet)

1 个答案:

答案 0 :(得分:0)

您的DataSet有两列名为“conc”和“Fnorm”。您使用的是公式Response~Hill1(LogC,Em,n,D)。直至文档:如果给出了数据,则公式中使用的所有名称都应定义为 数据框中的参数或变量。所以在你的DataSet中没有名为“Response”的列,而且你在公式中使用了Hill1函数。

此致