如何创建一个新表来汇总另一个数据框中的数据?

艾宾·史莱恩斯

我有一个数据帧df,其数据看起来像

dataset <- data.frame(customer_id = c(12,12,234,234,781,456),
                  Sales_id = c(20013211129, 20013217122, 20013149844, 20013273151, 20013222724, 20013171637),
                  Rev = c(1000,1000,1000,1000,1000,1000),
                  Source = c('App', 'Non-App', 'App', 'Non-App', 'Non-App', 'Non-App'))

customer_id |   Sales_id  | Rev | Source
       12     20013211129   1000  App
       12     20013217122   1000  Non-App
       234    20013149844   1000  App
       234    20013273151   1000  Non-App
       781    20013222724   1000  Non-App
       456    20013171637   1000  Non-App

我希望使用此数据框的数据创建一个表,结果显示为

........No_of_customers | no_of_orders | total_revenue
App         2                 2               2000
Non-App     4                 4               4000
Total       6                 6               6000
App%        33%               33%              33%   

在这里,客户数量基于不重复的customer_id计数,订单数基于不重复的sales_id计数,总数直接是前两行的总和。我是R的新手,所以我需要一些有关该工作应使用哪些功能的帮助

维甲酸

这里是一个解决方案,可能不是最好的解决方案,但是它可以工作...

## Load Data
customer_id <- c(12,12,34,234,781,456)
Sales_id <- c(20013211129,
              20013217122,
              20013149844,
              20013273151,
              20013222724,
              20013171637)
Rev <- rep(1000, 6)
Source <- c("App", "Non-App", "App", "Non-App", "Non-App", "Non-App")
data <- data.frame(customer_id, Sales_id, Rev, Source, stringsAsFactors = FALSE)

## Create Overview table
library(dplyr)
result <- data %>% 
  group_by(Source) %>% 
  summarise(No_of_customers = length(unique(customer_id)),
            no_of_orders = length(unique(Sales_id)),
            total_revenue = sum(Rev))
temp_res <- result[,-1]
temp_res <- rbind(temp_res, apply(temp_res, 2, sum))
temp_res <- rbind(temp_res, temp_res[1,]/temp_res[3,]*100)
cbind(Cat = c("App", "Non-App", "Total", "App%"), temp_res)

但是,我不建议将总计和份额作为另外一行放入data.frame中。相反,我会做类似的事情...

library(tidyr)
result <- result %>% 
  pivot_longer(cols = -Source, names_to = "Cat")

## get Total
result %>% 
  group_by(Cat) %>% 
  summarise(Sum = sum(value))

## get Share
result %>% 
  group_by(Cat) %>% 
  summarise(App_share = value[Source == "App"] / sum(value))

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何通过获取另一个数据框的滚动COLUMN总数/总和来创建新的数据框?

来自分类Dev

如何基于另一个数据框创建绘图新的数据框

来自分类Dev

根据R中另一个数据框的索引创建一个新的数据框

来自分类Dev

在数据框中创建一个新变量,条件是另一个数据框

来自分类Dev

在 R 中创建一个包含另一个数据框统计信息的新数据框

来自分类Dev

如何仅使用在另一个数据框中已更改的行来创建新数据框?

来自分类Dev

R:使用来自另一个数据框的映射在一个数据框中创建一个新列

来自分类Dev

通过将函数应用于另一个数据框的列来创建新的数据框

来自分类Dev

如何基于另一个数据框上的条件匹配在数据框中创建新列?

来自分类Dev

语言:如何根据另一个数据框在数据框中创建新列?

来自分类Dev

如何从当前数据库CodeIgniter中的另一个数据库创建新表

来自分类Dev

从R中的另一个数据框创建多个数据框

来自分类Dev

根据来自另一个数据框的值创建新的数据框

来自分类Dev

R:创建新的数据框行是来自另一个数据框的列

来自分类Dev

基于另一个数据框按组创建新数据框

来自分类Dev

基于另一个数据框创建新的数据框

来自分类Dev

如何使用另一个数据框的分组输出来创建新的数据框?

来自分类Dev

根据与另一个数据框的匹配在数据框中创建新列

来自分类Dev

如何基于另一个长度不同的另一个数据框的值在现有数据框上创建新列

来自分类Dev

如何从另一个数据框创建转置数据框

来自分类Dev

根据另一个数据集中的列值在一个数据框中创建列

来自分类Dev

从一个数据框中减去另一个数据

来自分类Dev

通过将列与另一个数据帧中的列匹配来在数据框中创建新列

来自分类Dev

从另一个创建一个数据框(使用数据透视)

来自分类Dev

如何基于另一个数据框中的组在熊猫数据框中创建指标列?

来自分类Dev

创建一个新的数据框,其中某些行是另一个数据框中单行的扩展版本

来自分类Dev

使用另一个数据框的行号从现有数据框创建新的pandas数据框

来自分类Dev

创建新的数据框,该数据框填充了另一个数据框的简单计算

来自分类Dev

基于另一个搜索数据框过滤和汇总一个数据框

Related 相关文章

  1. 1

    如何通过获取另一个数据框的滚动COLUMN总数/总和来创建新的数据框?

  2. 2

    如何基于另一个数据框创建绘图新的数据框

  3. 3

    根据R中另一个数据框的索引创建一个新的数据框

  4. 4

    在数据框中创建一个新变量,条件是另一个数据框

  5. 5

    在 R 中创建一个包含另一个数据框统计信息的新数据框

  6. 6

    如何仅使用在另一个数据框中已更改的行来创建新数据框?

  7. 7

    R:使用来自另一个数据框的映射在一个数据框中创建一个新列

  8. 8

    通过将函数应用于另一个数据框的列来创建新的数据框

  9. 9

    如何基于另一个数据框上的条件匹配在数据框中创建新列?

  10. 10

    语言:如何根据另一个数据框在数据框中创建新列?

  11. 11

    如何从当前数据库CodeIgniter中的另一个数据库创建新表

  12. 12

    从R中的另一个数据框创建多个数据框

  13. 13

    根据来自另一个数据框的值创建新的数据框

  14. 14

    R:创建新的数据框行是来自另一个数据框的列

  15. 15

    基于另一个数据框按组创建新数据框

  16. 16

    基于另一个数据框创建新的数据框

  17. 17

    如何使用另一个数据框的分组输出来创建新的数据框?

  18. 18

    根据与另一个数据框的匹配在数据框中创建新列

  19. 19

    如何基于另一个长度不同的另一个数据框的值在现有数据框上创建新列

  20. 20

    如何从另一个数据框创建转置数据框

  21. 21

    根据另一个数据集中的列值在一个数据框中创建列

  22. 22

    从一个数据框中减去另一个数据

  23. 23

    通过将列与另一个数据帧中的列匹配来在数据框中创建新列

  24. 24

    从另一个创建一个数据框(使用数据透视)

  25. 25

    如何基于另一个数据框中的组在熊猫数据框中创建指标列?

  26. 26

    创建一个新的数据框,其中某些行是另一个数据框中单行的扩展版本

  27. 27

    使用另一个数据框的行号从现有数据框创建新的pandas数据框

  28. 28

    创建新的数据框,该数据框填充了另一个数据框的简单计算

  29. 29

    基于另一个搜索数据框过滤和汇总一个数据框

热门标签

归档