Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/74.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R 使用矩阵乘法将权重应用于多个组_R - Fatal编程技术网

R 使用矩阵乘法将权重应用于多个组

R 使用矩阵乘法将权重应用于多个组,r,R,我有一个包含一系列商店和客户数据的数据集。我试图用年龄和性别变量来划分我的分析。我想回顾一下按年龄和性别调整的商店销售额 我能够计算年龄和性别组合的参考权重(ref\u wt)。我想做的是将这些权重应用到每个商店 首先,在应用权重时如何改进矩阵的使用?第二,在构建每个矩阵时,如何说明可能没有客户群的商店?例如,只有男性的商店 我的目标是通过每个门店的客户交叉表,对多个ref\u wt 编辑如果有任何问题,我的问题可能会分解为正确的方法。通过使用groupby和连接,我从矩阵结构中获得了什么好处

我有一个包含一系列商店和客户数据的数据集。我试图用年龄和性别变量来划分我的分析。我想回顾一下按年龄和性别调整的商店销售额

我能够计算年龄和性别组合的参考权重(
ref\u wt
)。我想做的是将这些权重应用到每个商店

首先,在应用权重时如何改进矩阵的使用?第二,在构建每个矩阵时,如何说明可能没有客户群的商店?例如,只有男性的商店

我的目标是通过每个门店的客户交叉表,对多个
ref\u wt

编辑如果有任何问题,我的问题可能会分解为正确的方法。通过使用
groupby
和连接,我从矩阵结构中获得了什么好处

> dat <- as.data.frame(list(sex = c('m', 'm', 'f', 'm', 'f'),
                            under_30 = c(1, 0, 1, 0, 0),
                            paid = c(0, 10, 3, 5, 20)))
> 
> # calc avg overall
> ref_total <- mean(dat$paid)
> ref_total
[1] 7.6
> 
> # calc avg by segment
> ref_seg <-  dat %>% 
    group_by(sex, under_30) %>% 
    summarise(x = mean(paid)) %>% 
    as.data.frame() %>% 
    spread(., sex, x) %>% 
    replace(is.na(.), 0) %>% 
    as.data.frame.matrix()
>ref_seg
  under_30  f   m
1        0 20 7.5
2        1  3 0.0

># drop under_30 row name
>ref_seg <- ref_seg[,2:3]
>ref_seg
   f   m
1 20 7.5
2  3 0.0
>
># calc seg weights
>ref_wt <- ref_seg / ref_total
>ref_wt
          f         m
1 2.6315789 0.9868421
2 0.3947368 0.0000000
>dat
>#总体计算平均值
>参考总计参考总计
[1] 7.6
> 
>#分段计算平均值
>参考seg%
组别(性别,30岁以下)%>%
汇总(x=平均值(已付))%>%
as.data.frame()%>%
传播率(%,性别,x)%>%
替换(is.na(.),0)%>%
as.data.frame.matrix()
>参考段
30英尺以下
1        0 20 7.5
2        1  3 0.0
>#放在第30行名称下
>参考段参考段
f m
1 20 7.5
2  3 0.0
>
>#计算分段权重
>参考重量参考重量
f m
1 2.6315789 0.9868421
2 0.3947368 0.0000000

删除带时间戳的光标后,是否编辑代码?这使得它很难阅读,也更难复制/粘贴/运行。在输出行的开头添加注释字符也很好,这样人们就可以很容易地看到正在发生的事情并进行实验。但是为了解决一般问题,矩阵运算应该比数据帧运算更有效。如果这对你很重要,就使用它们;如果没有,就不要。