x <- c(0.1,0.2,0.3,0.4,0.5,0.6,0.7,0.8,0.9,1.0)
y <- c(1,12,7,1,11,6,2,4,9,13)
z <- c(3,2,8,1,5,10,14,2,9,12)
离散函数:
discretize3d = function( x, y, z, numBins1, numBins2, numBins3, r1=range(x), r2=range(y), r3 = range(z) )
{
b1 = seq(from=r1[1], to=r1[2], length.out=numBins1+1 )
b2 = seq(from=r2[1], to=r2[2], length.out=numBins2+1 )
b3 = seq(from=r3[1], to=r3[2], length.out=numBins3+1 )
xyz = table( cut(x, breaks=b1, include.lowest=TRUE ),
cut(y, breaks=b2, include.lowest=TRUE ),
cut(z, breaks=b3, include.lowest=TRUE ))
return( xyz )
}
离散化:
XYZ <- discretize3d(x, y, z, numBins1 = 3, numBins2 = 2, numBins3 = 2,
r1=range(x), r2=range(y), r3=range(z))
#####################################################
XY <- rowSums(XYZ, dims = 2)
YZ <- colSums(XYZ, dims = 1)
请问我想得到XZ,怎么用简洁的函数得到?请大牛指点,非常感谢!
#####################################################
|