【问题标题】:R: Error in eval(predvars, data, env) : numeric 'envir' arg not of length one in intrinsic.pars() in multgee packageR:eval(predvars,data,env)中的错误:数字'envir'arg不是multgee包中intrinsic.pars()中的长度为1
【发布时间】:2015-02-21 17:13:43
【问题描述】:

我有一个数据框df,其中包含以下数据:

family_id_cass   twin_order  ls75cat
  10026          1           2
  10026          2           2
  10071          1           3
  10071          2           3
  10132          1           1
  10132          2           2

我想运行intrinsic.pars(),所以我正在做的事情如下:

intrinsic.pars(df$ls75cat, df$family_id_cass, df$twin_order, rscale="ordinal") 但我收到以下错误:

Error in eval(predvars, data, env) : numeric 'envir' arg not of length one

我做错了什么?

【问题讨论】:

    标签: r


    【解决方案1】:

    intrinsic.pars() 似乎是用一个非常喜怒无常的界面编写的,它实际上忽略了大部分参数。 (我怀疑这是一个内部函数。)无论如何,您必须为参数“data”提供一个 data.frame,其中包括变量yidtime

    df <- read.csv(text=
    "family_id_cass,twin_order,ls75cat
    10026,1,2
    10026,2,2
    10071,1,3
    10071,2,3
    10132,1,1
    10132,2,2")
    
    newData<-data.frame(y=df$ls75cat,
                        id=df$twin_order,
                        time=df$family_id_cass)
    
    # either of these calls will do:
    intrinsic.pars(y,newData,id,time,rscale="ordinal")
    intrinsic.pars(data=newData,rscale="ordinal")
    
    #> [1] -3.498327e-07 -1.143481e-10 -5.162827e+00
    #> Warning message:
    #> glm.fit: fitted rates numerically 0 occurred 
    

    【讨论】:

    • 代码至今仍在运行,虽然我认为这需要很长时间。我的总样本只有 5,306 个观察值。
    • 我还有一个关于idtime 变量的问题。 multgee 上的文档指出 id 是标识集群的向量。在我的情况下,每对双胞胎都是一个集群,所以id = df$family_id_cass 不应该是双胞胎拥有相同的family_id_cass 吗?这意味着time = twin_order.
    • 但是,当我以这种方式运行intrinsic.pars() 时,我得到一个错误:Error in `contrasts&lt;-`(`*tmp*`, value = contr.funs[1 + isOF[nn]]) : contrasts can be applied only to factors with 2 or more levels。你认为我对参数的解释是错误的吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-11-05
    • 2020-09-21
    • 2020-04-12
    • 1970-01-01
    • 2022-01-11
    • 2020-04-02
    • 2022-11-07
    相关资源
    最近更新 更多