R:R中NPS计算的交叉表分析
我在R中有一个nps调查数据,调查原始数据如下所示:R:R中NPS计算的交叉表分析,r,R,我在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
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
)
gender age
------ ------------------
total F M 18 19 20 21
0 -0.6 0.7 0.1 -0.1 0.3 -0.2
age nps
0 0
1 0
2 0
3 0
library(dplyr)
df_gender <- df %>%
group_by(Gender) %>%
summarise(nps = (sum(Promoters)/n()) - (sum(Detractors/n())))
df_age <- df %>%
group_by(Age) %>%
summarise(nps = (sum(Promoters)/n()) - (sum(Detractors/n())))
实际上我试过分组
df %>%
group_by(Gender) %>%
summarise(nps = (sum(Promoters)-sum(Detractors))/(sum(Promoters)+sum(Passives)+sum(Detractors)))
但结果是这样的:
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
)
gender age
------ ------------------
total F M 18 19 20 21
0 -0.6 0.7 0.1 -0.1 0.3 -0.2
age nps
0 0
1 0
2 0
3 0
library(dplyr)
df_gender <- df %>%
group_by(Gender) %>%
summarise(nps = (sum(Promoters)/n()) - (sum(Detractors/n())))
df_age <- df %>%
group_by(Age) %>%
summarise(nps = (sum(Promoters)/n()) - (sum(Detractors/n())))
我不知道如何在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
)
gender age
------ ------------------
total F M 18 19 20 21
0 -0.6 0.7 0.1 -0.1 0.3 -0.2
age nps
0 0
1 0
2 0
3 0
library(dplyr)
df_gender <- df %>%
group_by(Gender) %>%
summarise(nps = (sum(Promoters)/n()) - (sum(Detractors/n())))
df_age <- df %>%
group_by(Age) %>%
summarise(nps = (sum(Promoters)/n()) - (sum(Detractors/n())))
库(dplyr)
df_性别%
按性别划分的组别%>%
总结(nps=(总和(发起人)/n())-(总和(批评者/n()))
还有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
)
gender age
------ ------------------
total F M 18 19 20 21
0 -0.6 0.7 0.1 -0.1 0.3 -0.2
age nps
0 0
1 0
2 0
3 0
library(dplyr)
df_gender <- df %>%
group_by(Gender) %>%
summarise(nps = (sum(Promoters)/n()) - (sum(Detractors/n())))
df_age <- df %>%
group_by(Age) %>%
summarise(nps = (sum(Promoters)/n()) - (sum(Detractors/n())))
df_年龄%
组别(年龄)%>%
总结(nps=(总和(发起人)/n())-(总和(批评者/n()))
如果您希望同时按年龄和性别对NPS进行细分,那么只需将这两个列名添加到group_by语句中。我从代码中得到的结果与您得到的结果不一样,但我猜测您是否只需按另一个分组变量(年龄/性别)进行第二次汇总你会得到你想要的结果。我不明白你是不是想分别计算所有女性、所有男性、所有18岁、所有19岁等的nps。。。或者,如果您跨越年龄和性别,计算“18岁女性”和“18岁男性”的nps
?