r - 使用 2 个选择动词在 dplyr 中选择数据子集
问题描述
我目前有这个 dplyr 脚本来选择某些数据点。在第一个选择语句中,我收集了所有需要的列。在汇总语句中,我正在创建一些需要的操作(基本上是串联)。在我的最终选择动词中,我希望仅选择最终选择语句中的内容。但是,当我查看我的数据框时,它仍然包含在汇总动词中使用的列,尽管它们没有在最终选择版本中被选中。我想删除这些列。下面是剩余但想要排除的列的屏幕截图(红色)
data <- qc_sales %>%
mutate(Call_For_Price = ifelse(CFP_FLG == 1, "TRUE", "FALSE")) %>%
filter( STR_NBR != '8119'
, Opened_Quote_Flag == 1
, LWK_TY_LY_FLG == 'TY'
, MVNDR_NBR %in% c('60031167', '60688509', '60074051', '60148060', '60086898', '60080204')
, !SUB_DEPT_NBR %in% c('0025','0028')) %>%
select( QUOTE_DT
, COM_ORDER_NBR
, STR_NBR
, ST_CD
, BRANCH_NM
, MKT_NBR
, MKT_NM
, ASSC_FRST_NM
, ASSC_LAST_NM
, MAIN_STR_PHN_NBR
, MVNDR_NBR
, MVNDR_NM
, SUB_DEPT_NBR
, SUB_DEPT_DESC
, PROD_DESC
, ADD_PROD_DESC
, Manufacturer_Model_NBR
, Call_For_Price
, QUOTE_DLRS) %>%
group_by(QUOTE_DT
, COM_ORDER_NBR
, STR_NBR
, ST_CD
, BRANCH_NM
, MKT_NBR
, MKT_NM
, ASSC_FRST_NM
, ASSC_LAST_NM
, MAIN_STR_PHN_NBR
, MVNDR_NBR
, MVNDR_NM
, SUB_DEPT_NBR
, SUB_DEPT_DESC
, PROD_DESC
, ADD_PROD_DESC
, Manufacturer_Model_NBR
, Call_For_Price
) %>%
summarise(Quote_Dollars =sum(QUOTE_DLRS)
, Sub_Dept = MAX(CONCAT(SUB_DEPT_NBR,'-', SUB_DEPT_DESC))
, Market_Nbr_Nm = MAX(CONCAT(MKT_NBR,'-', MKT_NM))
, Associate_Name = MAX(CONCAT(ASSC_FRST_NM,'-', ASSC_LAST_NM))
, MVNDR = MAX(CONCAT(MVNDR_NBR,'-', MVNDR_NM))) %>%
select( QUOTE_DT
, COM_ORDER_NBR
, STR_NBR
, ST_CD
, BRANCH_NM
, MAIN_STR_PHN_NBR
, Market_Nbr_Nm
, Associate_Name
, MAIN_STR_PHN_NBR
, Sub_Dept
, MVNDR
, PROD_DESC
, ADD_PROD_DESC
, Manufacturer_Model_NBR
, Call_For_Price
, Quote_Dollars) %>%
arrange(desc(Quote_Dollars)) %>%
collect()
换句话说,如果突出显示的列没有在第二个选择动词中被选中,我不明白为什么突出显示的列会包含在我的数据框中。我以为dplyr中的操作顺序基本上是降序的
解决方案
尝试按如下方式执行此操作。删除分组
...
summarise(Quote_Dollars =sum(QUOTE_DLRS)
, Sub_Dept = MAX(CONCAT(SUB_DEPT_NBR,'-', SUB_DEPT_DESC))
, Market_Nbr_Nm = MAX(CONCAT(MKT_NBR,'-', MKT_NM))
, Associate_Name = MAX(CONCAT(ASSC_FRST_NM,'-', ASSC_LAST_NM))
, MVNDR = MAX(CONCAT(MVNDR_NBR,'-', MVNDR_NM))) %>%
ungroup() %>%
...
或者
...
summarise(Quote_Dollars =sum(QUOTE_DLRS)
, Sub_Dept = MAX(CONCAT(SUB_DEPT_NBR,'-', SUB_DEPT_DESC))
, Market_Nbr_Nm = MAX(CONCAT(MKT_NBR,'-', MKT_NM))
, Associate_Name = MAX(CONCAT(ASSC_FRST_NM,'-', ASSC_LAST_NM))
, MVNDR = MAX(CONCAT(MVNDR_NBR,'-', MVNDR_NM))
, .groups = "drop") %>%
...
推荐阅读
- python - 在Python中通过散点提取二维网格字段的值
- python - Python:分离列表中的术语并分配值
- java - 多模块项目中的 Spring Scheduled Services
- javascript - 反应,使状态适用于循环中的单个元素
- javascript - 如何制作自定义验证错误消息?
- c# - 如果您在同一文件夹中有多个项目或多个 .cs 文件,如何编译 dotnet 项目
- ubuntu - 在 Jetson TX2 上构建 TensorFlow
- api - PHP函数sell()的Binance api不起作用
- php - 使用 excel 从数据库从 col 2 开始插入数据库
- mysql - MYSQL 如果表退出运行某事,否则运行另一件事