首页 > 解决方案 > 在行、R 数据框或 Excel 中查找重复值的出现?

问题描述

目前需要以下数据框的帮助(这也是 Excel 中的相同格式,因此可以在 Excel 或 R 中完成)

数据框:

Company_id    Year    Month    Employee_Range   Employees Cheese Chips Eggs
1             2014    NA       NA               NA         1       0    0   
1             2014    NA       NA               NA         1       0    0  
1             2014    NA       NA               NA         1       0    0 
2             2014    NA       NA               NA         0       1    0
3             2014    NA       NA               NA         0       0    1 
3             2014    NA       NA               NA         0       0    1

数据框继续大约 630,000 行,这里有一些进一步的信息

1) 对于company_id 列,每个公司都有编号,因此1 = 公司1,2 = 公司2,依此类推。每家公司根据他们是否多次收到薯条、鸡蛋或奶酪而重复,这就是为什么公司 2 只有一排。

2) 列下的数字,奶酪,薯条和鸡蛋仅表示 1 = “是的,他们订购了”和 0 = “不,他们没有订购”,所以它就像一个理货表,但每个公司都是一行

3) 其余信息不适用,因为不需要

4)如果一家公司选择了鸡蛋、奶酪或薯条中的一种,那么它只是那个栏目!没有公司选择多个项目的情况或发生,因此所有数字都包含在该公司的单个列中。

我想要一种方法来查找给定公司行的计数总和,所以我想生成一个数据框或 Excel 表,例如:

   Company_id    Year    Month    Employee_Range   Employees Cheese Chips Eggs
        1          2014    NA       NA               NA         3       0    0
        2          2014    NA       NA               NA         0       1    0
        3          2014    NA       NA               NA         0       0   2

任何想法都有帮助,

谢谢,

标签: rexceldataframepivot-tablevlookup

解决方案


使用dplyr. dat2是最终的输出。

library(dplyr)

dat2 <- dat %>%
  group_by(Company_id, Year, Month, Employee_Range, Employees) %>%
  summarise_at(vars(Cheese, Chips, Eggs), funs(sum(.))) %>%
  ungroup()
dat2
# # A tibble: 3 x 8
#   Company_id  Year Month Employee_Range Employees Cheese Chips  Eggs
#        <int> <int> <lgl> <lgl>          <lgl>      <int> <int> <int>
# 1          1  2014 NA    NA             NA             3     0     0
# 2          2  2014 NA    NA             NA             0     1     0
# 3          3  2014 NA    NA             NA             0     0     2

数据

dat <- read.table(text = "Company_id    Year    Month    Employee_Range   Employees Cheese Chips Eggs
1             2014    NA       NA               NA         1       0    0   
1             2014    NA       NA               NA         1       0    0  
1             2014    NA       NA               NA         1       0    0 
2             2014    NA       NA               NA         0       1    0
3             2014    NA       NA               NA         0       0    1 
3             2014    NA       NA               NA         0       0    1",
                  header = TRUE)

推荐阅读