使用 {pegas} 绘制单倍型网络时出现问题

Issue while drawing an haplotype network using {pegas}

我正在尝试使用 pegas 生成单倍型网络。我设法做了基本网络,但是当我尝试为每个添加不同颜色的切片时 "pie" 我似乎无法前进。

我将使用 woodmouse 数据集复制我的错误:

data(woodmouse)
x <- woodmouse[sample(15, size = 110, replace = TRUE), ]
h <- haplotype(x)
net <- haploNet(h)
plot(net, size=attr(net, "freq"), scale.ratio = 2, cex = 0.8)

ind.hap<-with(
  stack(setNames(attr(h, "index"), rownames(h))), 
  table(hap=ind, pop=rownames(x)[values])
)

使用上面的代码我设法绘制网络没问题,但是当我尝试执行最后四行代码时出现以下错误:

ind.hap<-with(
  stack(setNames(attr(h, "index"), rownames(h))), 
  table(hap=ind, pop=rownames(x)[values])
)

Error in (function (classes, fdef, mtable)  : 
  unable to find an inherited method for function ‘raster’ for signature ‘"integer"’

对可能出现的问题有什么建议吗?

错误消息听起来像是来自 raster 包中的 stack() 函数,而不是基础 stack() 函数。包都可以定义同名的函数; R 将从最近加载的包中找到一个。要使用来自 utils 的版本,您可以在其前面加上命名空间和 ::。例如

utils::stack(setNames(attr(h, "index"), rownames(h)))

这应该可以解决问题。