R 从大的数字向量创建计数矩阵

R 从大的数字向量创建计数矩阵,r,matrix,R,Matrix,假设我有一组非常大的X,Y数字,介于0和1之间(暂时忽略第三列): 我试图创建一个计数矩阵,计算某个值范围内出现的X,Y数量。例如,有多少数据点发生在哪里 0.49<X<0.5 and 0.49<Y<0.5 0.49 dd<- data.frame( X = c(0.5, 0.500559, 0.500708, 0.500708, 0.498227, 0.488925, 0.484398, 0.476617, 0.474858, 0.4

假设我有一组非常大的X,Y数字,介于0和1之间(暂时忽略第三列):

我试图创建一个计数矩阵,计算某个值范围内出现的X,Y数量。例如,有多少数据点发生在哪里

0.49<X<0.5 and 0.49<Y<0.5 

0.49

dd<- data.frame(
    X = c(0.5, 0.500559, 0.500708, 0.500708, 0.498227, 
        0.488925, 0.484398, 0.476617, 0.474858, 0.470889),
    Y = c(0.1, 
        0.100946, 0.100903, 0.100903, 0.100267, 0.0997211, 0.100495, 
        0.10003, 0.0993702, 0.0990931),
    OTHER = c(1.88093e-296, 1.14878e-296, 
        1.00751e-296, 1.00751e-296, 8.935e-296, 2.70318e-292, 1.19442e-290, 
        7.06571e-288, 2.95419e-287, 7.00569e-286)
)

dd检查
cut
表的功能
data <- read.table(args[1]);

sizeuse<-100;

mdat <- matrix(rep(0,sizeuse*sizeuse), nrow = sizeuse, ncol = sizeuse)
nr<-nrow(data);

for(i in 1:nr){#1:1000) {
  x<-floor(data[i,]$V1/(1/sizeuse));
  y<-floor(data[i,]$V2/(1/sizeuse));

  mdat[ x , y  ] <- mdat[ x  , y  ]+1;
}
dd<- data.frame(
    X = c(0.5, 0.500559, 0.500708, 0.500708, 0.498227, 
        0.488925, 0.484398, 0.476617, 0.474858, 0.470889),
    Y = c(0.1, 
        0.100946, 0.100903, 0.100903, 0.100267, 0.0997211, 0.100495, 
        0.10003, 0.0993702, 0.0990931),
    OTHER = c(1.88093e-296, 1.14878e-296, 
        1.00751e-296, 1.00751e-296, 8.935e-296, 2.70318e-292, 1.19442e-290, 
        7.06571e-288, 2.95419e-287, 7.00569e-286)
)
xc<-cut(dd$X, breaks=(46:51)/100)
yc<-cut(dd$Y, breaks=(9:11)/100)

table(xc,yc)