【问题标题】:How to iterate through repeated dataset to get monthly totals?如何遍历重复的数据集以获得每月总数?
【发布时间】:2019-10-14 17:01:47
【问题描述】:

如何遍历 R 中的数据框以根据日期(任意顺序和数量)获取每个变量的总数量?

Date          Var
2019-03-1    A    
2019-01-1    A
2019-03-1    B
2019-02-1    A
2019-01-1    A
2019-01-1    B
2019-02-1    A
2019-02-1    A
2019-02-1    B
2019-01-1    A
2019-03-1    C

填充另一个包含

的框架
Date         Var A          Var B            Var C
2019-01-1    3              1                0
2019-02-1    3              1                0
2019-03-1    1              1                1

【问题讨论】:

  • 你尝试了什么?你在哪里卡住了?

标签: r count counter


【解决方案1】:

我们得到'Date'、'Var' 的count 并用pivot_wider 将'long' 重塑为'wide'

library(dplyr)
library(tidyr) #1.0.0
library(stringr)
df1 %>% 
   count(Date, Var = str_c('Var_', Var)) %>% 
   pivot_wider(names_from = Var, values_from = n, values_fill = list(n = 0))
# A tibble: 3 x 4
#  Date      Var_A Var_B Var_C
#  <chr>     <int> <int> <int>
#1 2019-01-1     3     1     0
#2 2019-02-1     3     1     0
#3 2019-03-1     1     1     1

base R 中,这可以通过table 完成

table(df1)

数据

df1 <- structure(list(Date = c("2019-03-1", "2019-01-1", "2019-03-1", 
"2019-02-1", "2019-01-1", "2019-01-1", "2019-02-1", "2019-02-1", 
"2019-02-1", "2019-01-1", "2019-03-1"), Var = c("A", "A", "B", 
"A", "A", "B", "A", "A", "B", "A", "C")),
class = "data.frame", row.names = c(NA, 
-11L))

【讨论】:

    【解决方案2】:

    这是 data.table 中的一个简单单行器

    library(data.table)
    dcast( DT, Date ~ Var)
    
    #         Date A B C
    # 1: 2019-01-1 3 1 0
    # 2: 2019-02-1 3 1 0
    # 3: 2019-03-1 1 1 1
    

    样本数据

    DT <- data.table::fread("Date          Var
    2019-03-1    A    
    2019-01-1    A
    2019-03-1    B
    2019-02-1    A
    2019-01-1    A
    2019-01-1    B
    2019-02-1    A
    2019-02-1    A
    2019-02-1    B
    2019-01-1    A
    2019-03-1    C")
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-02-10
      • 2021-11-14
      • 2023-02-20
      • 2018-11-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多