首页 文章

基于DPLYR的多个子集

提问于
浏览
0

以下数据框包含有关营销活动的数据 .

Sl No   Success_Percentage  communication_type  Message
 1       35.46666667           email            Hello, Buy New Product
  2      32.32830821          email              Hi Buy New Product
  3       22.9226361           SMS               Hello World
  4       21.88888889          SMS               Hello, Buy New Product
  5       40.04085802          FB                Hi Buy New Product
  6       38.7283237            FB               Hello World

我希望创建一个表如下 .

Success_Percentage  communication_type  Message
  22.9226361          SMS             Hello World
 21.88888889          SMS             Hello, Buy New Product
   35.46666667      email             Hello, Buy New Product
   32.32830821      email             Hi Buy New Product
   40.04085802       FB               Hi Buy New Product
    38.7283237        FB              Hello World

我使用了dplyr包来实现子集 .

require(dplyr)
  dataframe%>%
  group_by(communication_type, Message)
  summarise_all(order(Success_Percentage))

我无法获得上述输出 . 请注意,Success%是随机混合的(不是按此处的线性顺序)我无法获得所需的输出 .

1 回答

  • 1

    从您的新表中,您似乎想根据 communication_type 排列表格,并且在每个 communication_type 中,您希望按降序排列 Success_Percentage .

    你的数据集:

    df <- structure(list(Sl_No = 1:6, Success_Percentage = c(35.46666667, 
                                                             32.32830821, 22.9226361, 21.88888889, 40.04085802, 38.7283237
    ), communication_type = c("email", "email", "SMS", "SMS", "FB", 
                              "FB"), Message = c("Hello, Buy New Product", "Hi Buy New Product", 
                                                 "Hello World", "Hello, Buy New Product", "Hi Buy New Product", 
                                                 "Hello World")), class = "data.frame", .Names = c("Sl_No", "Success_Percentage", 
                                                                                                   "communication_type", "Message"), row.names = c(NA, -6L))
    

    因果 SMSSMSemailFB ;并相应安排:

    df %>% 
      mutate(communication_type = factor(communication_type, levels = c("SMS", "email", "FB"))) %>%
      arrange(communication_type, desc(Success_Percentage))
    

相关问题