使用 {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)))
这应该可以解决问题。
我正在尝试使用 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)))
这应该可以解决问题。