我有一个包含12,000名参与者的数据集。(一个矩阵表示两个大脑区域之间的距离,另一个矩阵表示两个大脑区域随时间的连通性的相关性)。我想把所有区域的距离x相关性,结合所有参与者,在一个图中。那就是1,555,200,000个数据点,而R不会为一个这样大小的轴分配向量。理想情况下,我还想在其上绘制一条最佳拟合线。
我尝试的策略是使用hexbin包计算每个参与者的一系列十六进制bin中的点数,然后迭代求和,以便所有参与者的每个bin都有计数。但是,我无法弄清楚如何进行求和操作,因为hexbin包中没有concatenate方法(或我所见过的其他等效功能)。
所以基本上我想做这样的事情:
library(mc2d)
library(hexbin)
N=10000
x1<-rpert(N,0,2,4,shape=5)
y1<-rpert(N,2,8,10,shape=5)
x2<-rpert(N,6,8,10,shape=5)
y2<-rpert(N,0,2,8,shape=5)
xc<-c(x1,x2)
yc<-c(y1,y2)
h1<-hexbin(x1,y1,xbnds=c(0,10),ybnds=c(0,10),xbins=100,shape=.75)
h2<-hexbin(x2,y2,xbnds=c(0,10),ybnds=c(0,10),xbins=100,shape=.75)
hc<-hexbin(xc,yc,xbnds=c(0,10),ybnds=c(0,10),xbins=100,shape=.75)
plot(hc)
除了我想从h1和h2生成hc,而不是从分量向量生成hc(因为对于我的实际应用程序来说,分量向量太大而无法保存在内存中),我愿意使用python或其他语言来完成这项工作。
2条答案
按热度按时间vqlkdk9b1#
我觉得这个行得通:
解压缩hexbin对象
提取值(作为数据框的列)或元数据
合并
获取一个hexbin对象列表。
NA
s试试看
使用上述示例中的值:
lyr7nygr2#
Ben的答案非常接近,但hexbin对象中的xcm和ycm是质心,并不是细胞所独有的因此,如果数据完全重叠,则在它们上合并会错误地产生重复。关键信息是,像元ID对于由边界信息定义的格网中的特定十六进制是唯一的(您可以通过比较hexbin中重叠和不重叠的单元格id的重叠范围来发现这一点-或者通过查看hcell 2xy函数输出的x和y坐标)。因此,只要两个hexbin的边界相同,你可以简单地在cellID上合并。
重叠数据的问题重述:
解决方案(改编自Ben's):