gpt4 book ai didi

使用通用名称对列重新排序 - dplyr

转载 作者:行者123 更新时间:2023-12-05 09:05:11 30 4
gpt4 key购买 nike

我的数据来自一个数据库,根据我运行 SQL 查询的时间,该数据库可能包含一周到另一周不同的 POS 值。

不知道哪些值将在变量中使得自动创建报告变得非常困难。

我的数据如下所示:

sample <- data.frame(DRUG = c("A","A","B"),POS = c("Hospital","Physician","Home"),GROSS_COST = c(50,100,60), NET_COST = c(45,80,40))

enter image description here

我需要将此数据框扩展得更宽,以便每个销售点都有一个按成本(总成本和净成本)列。

这可以使用 pivot_wider 轻松实现:

x <- sample %>% pivot_wider(names_from = POS, values_from = c(GROSS_COST,NET_COST))

enter image description here

目标我希望能够将每个 POS 的列放在一起,即 GROSS_COST_Hospital 和 NET_COST_Hospital 将并排放置,类似于所有其他 POS 列。

是否有一种使用字符串匹配对列进行分组的优雅方法?

最佳答案

不幸的是,我认为对此没有直接的解决方案(目前!)。参见 https://github.com/tidyverse/tidyr/issues/839 .

现在您可以获得长格式的数据,以便您可以按照自己的方式控制它们的顺序。

library(tidyr)

sample %>%
pivot_longer(cols = c(GROSS_COST, NET_COST)) %>%
pivot_wider(names_from = c(name, POS), values_from = value)

# DRUG GROSS_COST_Hosp… NET_COST_Hospit… GROSS_COST_Phys… NET_COST_Physic…
# <chr> <dbl> <dbl> <dbl> <dbl>
#1 A 50 45 100 80
#2 B NA NA NA NA
# … with 2 more variables: GROSS_COST_Home <dbl>, NET_COST_Home <dbl>

关于使用通用名称对列重新排序 - dplyr,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67517167/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com