如何在R语言glmmML中以字符串形式传递聚类列参数
解决glmmML中以字符串形式传递聚类列的问题
正确实现方式
直接从数据框中提取对应列作为cluster参数的值即可,这是最直接可靠的写法:
library(glmmML) # 构造示例数据 id <- factor(rep(1:20, rep(5, 20))) data <- data.frame(y = rbinom(100, prob = 0.1, size = 1), x = rnorm(100), id = id) # 定义字符串形式的聚类列名 cluster_column_as_string = 'id' # 正确调用glmmML glmmML(y ~ x, data = data, cluster = data[[cluster_column_as_string]])
之前写法失败的原因
- 直接传字符串
cluster = cluster_column_as_string:cluster参数要求传入实际的向量/因子对象,而非列名字符串,因此无法识别。 - 用
as.symbol():符号仅代表列名的抽象标识,glmmML不会自动将符号解析为数据框中的对应列。 - 用
.data[[...]]:若未加载dplyr等tidyverse包,.data对象不存在;即使加载,glmmML的参数解析逻辑也不支持这种tidyeval语法。
其他可选写法
如果需要更灵活的环境解析,也可以用get()函数指定数据框的环境:
glmmML(y ~ x, data = data, cluster = get(cluster_column_as_string, envir = as.environment(data)))
内容的提问来源于stack exchange,提问作者mizu
相关产品推荐
相关产品推荐

