楼主: wucco123
3618 6

[问答] 关于报错 invalid type (list) for variable 我尝试了网上很多方法 还是解决不了! [推广有奖]

  • 0关注
  • 0粉丝

小学生

35%

还不是VIP/贵宾

-

威望
0
论坛币
0 个
通用积分
0
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
69 点
帖子
4
精华
0
在线时间
8 小时
注册时间
2021-4-3
最后登录
2022-3-8

楼主
wucco123 发表于 2021-4-4 23:55:30 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
这是报错内容
Error in model.frame.default(all_vars_terms, data, na.action = na.pass,  :
  invalid type (list) for variable 'resp_rate(area)

这是我想进行的分析
fit_culm_numbers<-brm(formula=cNo~canopy*year2+resp_rate(area)+(1|plot),
+              family = poisson(),
+              data=dd,
+                          seed=1,
+              prior=c(set_prior("",class="Intercept"),
+                      set_prior("",class="sd")),
+              chains=4,
+              iter=50000,
+              warmup=20000,
+              thin=1,
+              control = list(adapt_delta=0.97,max_treedepth = 15,stepsize=0.001))

resp_rate项中的area是作为一个分母来使用,错误的意思我大概搞懂了,应该是说我area的数据类型不对。
我参考了网上的很多方法,把数据集dd 用as.data.frame改成了data.frame的数据类型,但是运行程序仍然报一样的错误。
fig.png
上图是我的数据resp_rate(area) 中的area是每个样方的面积,都是一样的为4。
正常是应该用offset(log(area))来把所有数量分别处以面积。
brms中用resp_rate替代了offset。

我隐约感觉到犯了一个很低级的错误,可我想了很久就是想不到,求助各位大神啦,谢谢大家!!!!


二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

关键词:Variable invalid Valid type list

沙发
wucco123 发表于 2021-4-5 13:47:55
求助 求助~~~~

藤椅
wucco123 发表于 2021-4-6 10:08:35
顶顶顶

板凳
owenqi 在职认证  学生认证  发表于 2021-4-6 10:18:45
resp_rate(area)是变量名字吗,如果是的话,是非法变量名。另外,你可以提供一小段数据,你这个描述方法,人家只能猜谜。

报纸
wucco123 发表于 2021-4-6 22:49:05
owenqi 发表于 2021-4-6 10:18
resp_rate(area)是变量名字吗,如果是的话,是非法变量名。另外,你可以提供一小段数据,你这个描述方法, ...
已经追加了解释,resp_rate() 是一个function的用法,功能大概和offset差不多,括号里的是分母

地板
owenqi 在职认证  学生认证  发表于 2021-4-7 11:24:57
我看了一下数据,有一个地方没弄明白,你的canopy的值是“bu”,这东西乘上数字还有意义?

7
wucco123 发表于 2021-4-7 14:27:56
owenqi 发表于 2021-4-7 11:24
我看了一下数据,有一个地方没弄明白,你的canopy的值是“bu”,这东西乘上数字还有意义?
这个bu和ho 是指两种树冠的种类,我随便用拼音表了一下,他是数据型应该是character。
把他俩用应用为dummy variable变数,当我的测定值(这个问题中是树冠下的个体数)在某一个树冠下时值为1,另一个树冠下的值就是0 。 这种使用方法在这一系列如glm,glmm里还是挺常用的,应该没什么问题。

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2026-2-8 07:46