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 语句中即可。