R:在r中计算NPS的交叉表分析

  • 本文关键字:交叉表 NPS 计算 r
  • 更新时间 :
  • 英文 :


i 我在 R 中有一个 nps 调查数据,调查原始数据如下所示:

df <- read.table(
text = "Gender  Age  Promoters   Passives   Detractors
F       20   0           1          0
M       19   1           0          0
M       21   1           0          0
F       19   0           0          1
M       20   1           0          0
M       18   0           1          0
F       18   1           0          0
F       21   0           0          1
M       19   0           0          1
F       20   0           1          0
F       21   0           0          1   ",
header = TRUE
)      

通常,nps 的计算公式为:

(推荐者数量(/所有回复 - (批评者数量(/全部 回应(

(0 表示当然没有响应(

现在我想计算特定年龄、性别和许多其他变量的 nps......像交叉表。 期望的结果如下所示:

gender   age
------   ------------------
total   F    M   18   19   20   21
0      -0.6   0.7   0.1   -0.1  0.3   -0.2

其实我试过分组

df %>% 
group_by(Gender) %>% 
summarise(nps = (sum(Promoters)-sum(Detractors))/(sum(Promoters)+sum(Passives)+sum(Detractors)))

但它是这样的:

age    nps
0      0
1      0
2      0
3      0

我不确定如何在 R 中执行此操作。任何帮助都会很棒!

你可以得到NPS,按性别细分如下:

library(dplyr)
df_gender <- df %>%
group_by(Gender) %>%
summarise(nps = (sum(Promoters)/n()) - (sum(Detractors/n())))

NPS,按年龄细分如下:

df_age <- df %>%
group_by(Age) %>%
summarise(nps = (sum(Promoters)/n()) - (sum(Detractors/n())))

如果您希望同时按年龄和性别细分 NPS,则只需将两个列名称添加到 group_by 语句中即可。

最新更新