我试图将一个简单的公式y~x
应用于函数,在这种情况下adonis {vegan}
,当在内部mapply
但我得到Error: object of type 'symbol' is not subsettable。
我正在运行:mapply(adonis, formula=dist_list~group_list, data=group_list, SIMPLIFY=F)
,其中 dist_list 是 dist 类中的距离矩阵列表,而 group_list 是因子列表。这同样适用于单个 dist 和 factor 对象。这也有效:mapply(betadisper, d = dist_list, group = group_list, SIMPLIFY=FALSE)
.
所以问题似乎出在使用formula
inside mapply
。我一直在尝试使用,substitute
但最终还是遇到了同样的错误。
这是提供可重现示例的尝试:
data(varespec)
dis <- vegdist(varespec, method="bray")
dis1 <- vegdist(varespec,method="jaccard")
dis2 <- vegdist(varespec,method="mountford")
dist_list <- list(dis,dis1,dis2)
groups <- factor(c(rep(1,16), rep(2,8)), labels = c("grazed","ungrazed"))
groups1 <- factor(c(rep(1,10), rep(2,14)), labels = c("grazed","ungrazed"))
groups2 <- factor(c(rep(1,20), rep(2,4)), labels = c("grazed","ungrazed"))
group_list <- list(groups,groups1,groups2)
mapply(adonis, formula=dist_list~group_list, data=group_list, SIMPLIFY=F)
#Error: object of type 'symbol' is not subsettable
任何解决此问题的指针将不胜感激,谢谢!