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

时间:2018-11-15 21:45:49

标签: r dna-sequence phylogeny genetics

我正在尝试使用Pegas产生单倍型网络。我设法建立了基本的网络,但是当我尝试为每个“饼”添加不同颜色的切片时,我似乎无法前进。

我将使用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"’

关于可能是什么问题的任何建议?

1 个答案:

答案 0 :(得分:2)

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

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

那应该解决问题。