如何箱X,Y,Z载体引入矩阵(R)(How to bin x,y,z vectors into ma

2019-10-20 12:15发布

这可能是一个基本的问题,但我一直没能到谷歌的任何有用的尝试了天。

我有X,Y,Z元组,其中,z是x和y的响应,并且可以被建模为一个表面的R数据帧。

> head(temp)
         x         y        z
1 36.55411  965.7779 1644.779
2 42.36912  978.9721 1643.957
3 58.34699 1183.7426 1846.123
4 53.55439 1232.2696 1990.707
5 50.76167 1115.2049 1281.988
6 51.37299 1059.9088 1597.028

我想创建平均z值的矩阵,与代表装箱y值和列表示分级的x值的行,等

            0<x<40    40<x<60  60<x<80   x>80
    0<y<800 1000.0    1100.00  1100.00   1000.0 
 800<y<1200 1000.0    1200.00  1200.00   1000.0 
1200<y<1400 1000.0    1200.00  1200.00   1000.0
     y<1400 1000.0    1100.00  1100.00   1000.0 

谢谢

Answer 1:

你可以使用tapplycut在这里

with(temp, tapply(z, 
    list(
      y=cut(y, breaks=c(0,800,1200,1400,Inf), include.lowest=T), 
      x=cut(x, breaks=c(0,40,60,80,Inf), include.lowest=T)
    ),
    mean)
)

cut函数把xy到你什么都喜欢组。 虽然tapply计算mean这里在列表中的这些值的每一个分组。

#                    x
# y                     (0,40]  (40,60] (60,80] (80,Inf]
#   (0,800]                 NA       NA      NA       NA
#   (800,1.2e+03]     1644.779 1592.274      NA       NA
#   (1.2e+03,1.4e+03]       NA 1990.707      NA       NA
#   (1.4e+03,Inf]           NA       NA      NA       NA


文章来源: How to bin x,y,z vectors into matrix (R)
标签: r binning