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中NPS计算的交叉表分析_R - Fatal编程技术网

R: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

我在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())))
实际上我试过分组

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