gpt4 book ai didi

r - 如何从 R 中的多个 id 中获取独占和总计数

转载 作者:行者123 更新时间:2023-12-03 18:49:44 24 4
gpt4 key购买 nike

我在 R 中有下面提到的数据框。

CusID     Date                   Type        LogCat             PriceCode
C-1 2021-01-02 14:13:10 Demo
C-2 2021-01-02 13:17:07 Pro SPR, DET, RTD KR
C-2 2021-01-02 14:15:10 Pro SPR, DET, RTD SR
C-2 2021-01-02 16:14:08 Pro SPR, DET, RTD DE
C-3 2021-01-02 17:11:03 Pro DET KL
C-3 2021-01-02 12:14:24 Pro DET ZT
C-3 2021-01-02 12:33:34 Pro DET KR
C-4 2021-01-02 10:43:55 Pro KR
C-5 2021-01-03 20:23:35 Pro SPR, RTD KR

杜普特<-
structure(list(CustID = c("C-1", "C-2", 
"C-2", "C-2", "C-3", "C-3",
"C-3", "C-4", "C-5"), DATE = c("2021-01-02 14:13:10", "2021-01-02 13:17:07", "2021-01-02 14:15:10", "2021-01-02 16:14:08", "2021-01-02 17:11:03", "2021-01-02 12:14:24", "2021-01-02 12:33:34", "2021-01-02 10:43:55", "2021-01-03 20:23:35"), TYPE = c("Demo",
"Pro", "Pro", "Pro", "Pro", "Pro", "Pro", "Pro", "Pro"
), LogCat = c(NA, "SPR,DET,RTD", "SPR,DET,RTD", "SPR,DET,RTD",
"DET", "DET", "DET", NA, " SPR, RTD "), PriceCode = c(NA,"KR", "SR", "DE", "KL", "ZT", "KR", "KR", "KR")), class = "data.frame", row.names = c(NA,
-9L))
通过使用上面的数据框,我需要根据日期和月份创建以下两个不同的输出数据框。例如,以日期 2021-01-02 为例。
所需数据框1<-
Total         4        100.00%
Demo 1 25.00%
Pro 3 75.00%
对于必需的数据帧 2,我们只需要考虑那些 CusID其中有 Type不等于 Demo .我们需要为 LogCat 获得以下计数和 PriceCode对于此类 CustId .这里要注意的是 LogCat中的值和 PriceCode不是标准的,可以随时更改,因此我们无法对其进行硬编码。
这里的要求是统计 LogCate中提到的值和 PriceCode每个 uniuqe 唯一 CustID .
例如, DET文本在 CustID 中唯一可用C-3 没有任何其他逗号分隔值,类似 KR文本在 CustID 中唯一可用C-4 在 ProceCode 中没有任何其他值该特定列 ( C-4 ) CustID . (All)与每个唯一的连接 LogCatPriceCode value 意味着它与该特定列中的其他值组合在一起。
最后 NA只有在有一些 CustID 的情况下,列才是静态的没有 LogCatPriceCode值但仍有 Type作为亲。
所需的数据框2<-
LogCat            Count        %          PriceCode       Count        %
SPR 0 0.00% KR 1 50.00%
SPR (All) 1 50.00% KR (All) 3 100.00%
DET 1 50.00% SR 0 0.00%
DET (All) 2 100.00% SR (All) 1 33.33%
RTD 0 0.00% DE 0 0.00%
RTD (All) 1 50.00% DE (All) 1 33.33%
Blank 1 33.33% ZT 0 0.00%
- - - ZT (All) 1 33.33%
- - - KL 0 0.00%
- - - KL (All) 1 33.33%
- - - Blank 0 0.00%
Both Blank 0 0.00% - 0 0.00%

最佳答案

第一部分库janitor会有所帮助(即使是第二部分)
第一部分

library(tidyverse)
library(janitor)
df %>% mutate(DATE = as.Date(DATE)) %>% select(1:3) %>%
unique() %>%
tabyl(TYPE, DATE) %>%
adorn_totals("row") %>%
adorn_percentages("col") %>%
adorn_pct_formatting(2) %>%
adorn_ns("front")

TYPE 2021-01-02 2021-01-03
Demo 1 (25.00%) 0 (0.00%)
Pro 3 (75.00%) 1 (100.00%)
Total 4 (100.00%) 1 (100.00%)

关于r - 如何从 R 中的多个 id 中获取独占和总计数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67141156/

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