我正在尝试使用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"’
关于可能是什么问题的任何建议?
答案 0 :(得分:2)
错误消息听起来像是来自stack()
软件包中的raster
函数,而不是基本的stack()
函数。包都可以使用相同的名称定义函数; R将从最近加载的软件包中找到一个。要使用utils
中的版本,可以在其前面加上名称空间和::
。例如
utils::stack(setNames(attr(h, "index"), rownames(h)))
那应该解决问题。