我在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的计算方法是:
(启动子数量)/all响应-(批评者数量)/all响应
(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.怎么做,如果有什么帮助就好了!
发布于 2019-11-27 17:46:19
你可以得到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语句中即可。
https://stackoverflow.com/questions/59069848
复制相似问题