gpt4 book ai didi

r - 图中每个点的高度值

转载 作者:行者123 更新时间:2023-12-03 18:39:10 27 4
gpt4 key购买 nike

我在一个名为:s1m 的数据框中有一个蛋白质-蛋白质相互作用的数据。每个 DB 和 AD 对进行交互,我也可以绘制它:

> head(s1m)
DB_num AD_num
[1,] 2 8153
[2,] 7 3553
[3,] 8 4812
[4,] 13 7838
[5,] 24 3315
[6,] 24 6012

数据图如下所示:
http://i.imgur.com/RTaeJ5r.jpg

然后我使用我在这个网站上找到的代码来绘制填充的等高线:
## compute 2D kernel density, see MASS book, pp. 130-131
require(MASS)
z <- kde2d(s1m[,1], s1m[,2], n=50)
plot(s1m, xlab="X label", ylab="Y label", pch=19, cex=.4)
filled.contour(z, drawlabels=FALSE, add=TRUE)

它给了我结果图像(减去涂鸦):
result

我的问题:我需要注释原始 s1m 中的每一行数据数据框的数字与其在等高线图上的高度相对应(因此我在上图中涂鸦)。我认为列表 z 具有我正在寻找的值,但我不确定。

最后,我希望我的数据看起来像这样,以便我可以分组研究蛋白质相互作用:
         DB_num AD_num   height
[1,] 2 8153 1
[2,] 7 3553 1
[3,] 8 4812 3
[4,] 13 7838 6
[5,] 24 3315 2
[6,] 24 6012 etc.

最佳答案

如果您想要实际高度而不是每个分配的垃圾箱,这是一种选择

## dummy data
DF <- data.frame(DB_num = rnorm(10000), AD_num = rnorm(10000))

require("MASS")

kde <- kde2d(DF[,1], DF[,2], n = 50)

请注意 kde2d作为组件返回 z这是一个(在本例中)50 行和列的矩阵,其中行对应于 x数据和列到 y数据。由于矩阵只是一个向量,并且数据由列填充,我们可以利用这一点并堆叠 xyn每次( n = 50 此处),然后放松 kde$z
dd <- dim(kde$z)
res <- data.frame(DB_num = rep(kde$x, times = dd[1]),
AD_num = rep(kde$y, times = dd[2]),
height = as.numeric(kde$z))

这产生
> head(res)
DB_num AD_num height
1 -3.582508378 -3.79074271 0.0000000000000000000000000006907447484
2 -3.429230262 -3.63682706 0.0000000000000000000000002951259863229
3 -3.275952146 -3.48291141 0.0000000000000000000000558203373144190
4 -3.122674029 -3.32899576 0.0000000000000000000055565720524140235
5 -2.969395913 -3.17508011 0.0000000000000000014967010810961022503
6 -2.816117797 -3.02116446 0.0000000000000008159370528768207499471

要获得垃圾箱,您需要遵循 filled.contour做了,这是通过形成中断
nlevels <- 20 ## default
brks <- pretty(range(res$height), nlevels)

> brks
[1] 0.00 0.01 0.02 0.03 0.04 0.05 0.06 0.07 0.08 0.09 0.10 0.11 0.12 0.13 0.14
[16] 0.15 0.16

然后使用 cut分配每个 height到基于 brks 的垃圾箱, 就像是
res <- transform(res, bin = as.numeric(cut(height, brks)))

这使
> head(res)
DB_num AD_num height bin
1 -3.582508378 -3.79074271 0.0000000000000000000000000006907447484 1
2 -3.429230262 -3.63682706 0.0000000000000000000000002951259863229 1
3 -3.275952146 -3.48291141 0.0000000000000000000000558203373144190 1
4 -3.122674029 -3.32899576 0.0000000000000000000055565720524140235 1
5 -2.969395913 -3.17508011 0.0000000000000000014967010810961022503 1
6 -2.816117797 -3.02116446 0.0000000000000008159370528768207499471 1

您可能想查看 ?cut 的详细信息确定垃圾箱边界上的行为,但这应该让你足够接近。

关于r - 图中每个点的高度值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17795204/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com