楼主: anchu
882 3

[问答] 三维的table数据,怎么得到任意两维的矩阵 [推广有奖]

  • 1关注
  • 1粉丝

硕士生

80%

还不是VIP/贵宾

-

威望
0
论坛币
0 个
通用积分
0
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
2164 点
帖子
106
精华
0
在线时间
162 小时
注册时间
2015-9-13
最后登录
2020-7-25

楼主
anchu 在职认证  发表于 2019-11-6 09:38:34 |只看作者 |坛友微信交流群|倒序 |AI写论文
2论坛币
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,怎么用简洁的函数得到?请大牛指点,非常感谢!


#####################################################

关键词:Table ABLE ABL tab
沙发
anchu 在职认证  发表于 2019-11-6 12:09:41 |只看作者 |坛友微信交流群
经过一上午的努力,得到以下解:
XZ <- as.matrix( data.frame(apply(XYZ[,,1], 1, sum), apply(XYZ[,,2], 1, sum)) )



###
这个结果不对,请求支援。。。

已有 1 人评分论坛币 收起 理由
cheetahfly + 10 精彩帖子

总评分: 论坛币 + 10   查看全部评分

使用道具

藤椅
anchu 在职认证  发表于 2019-12-6 20:19:50 |只看作者 |坛友微信交流群
anchu 发表于 2019-11-6 12:09
经过一上午的努力,得到以下解:
XZ
以上结果不对,请大神指导,谢谢啦!

使用道具

板凳
anchu 在职认证  发表于 2019-12-7 18:09:04 |只看作者 |坛友微信交流群
XY  <- rowSums(XYZ, dims = 2L)

YZ  <- colSums(XYZ, dims = 1L)

XZ  <- apply(XYZ, c(1,3), sum)

X    <- rowSums(XYZ, dims = 1L)

Y    <- apply(XYZ[,,], 2, sum)

Z    <- colSums(XYZ, dims = 2L)

使用道具

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群

京ICP备16021002-2号 京B2-20170662号 京公网安备 11010802022788号 论坛法律顾问:王进律师 知识产权保护声明   免责及隐私声明

GMT+8, 2024-4-25 18:16