【问题标题】:R studio: How to extend time series and fill in 0 for missing values?R studio:如何扩展时间序列并为缺失值填写 0?
【发布时间】:2021-10-16 19:48:15
【问题描述】:

我有两张桌子:

一个是“visits”表:

+--------+---------+--------+
|  date  | user_id | visits |
+--------+---------+--------+
| 1/1/18 |    A    |    2   |
+--------+---------+--------+
| 1/2/18 |    A    |    4   |
+--------+---------+--------+
| 1/3/18 |    A    |   10   |
+--------+---------+--------+
| 1/4/18 |    A    |   34   |
+--------+---------+--------+
| 1/5/18 |    A    |   23   |
+--------+---------+--------+
| 1/1/18 |    B    |   15   |
+--------+---------+--------+
| 1/2/18 |    B    |   12   |
+--------+---------+--------+
| 1/1/18 |    C    |   10   |
+--------+---------+--------+
| 1/1/18 |    D    |    5   |
+--------+---------+--------+
| 1/2/18 |    D    |   12   |
+--------+---------+--------+
| 1/3/18 |    D    |   15   |
+--------+---------+--------+
| 1/4/18 |    D    |   25   |
+--------+---------+--------+
| 1/1/18 |    E    |   18   |
+--------+---------+--------+
| 1/1/18 |    G    |   21   |
+--------+---------+--------+
| 1/2/18 |    G    |   10   |
+--------+---------+--------+

另一个是“location”表:

+---------+----------+
| user_id | location |
+---------+----------+
|    A    |     1    |
+---------+----------+
|    B    |     1    |
+---------+----------+
|    C    |     1    |
+---------+----------+
|    D    |     2    |
+---------+----------+
|    E    |     3    |
+---------+----------+
|    F    |     3    |
+---------+----------+
|    G    |     3    |
+---------+----------+

注意:

    1. 如果用户没有访问,他/她将不会出现在“访问”表中。他/她当天的访问量为 0。
    1. “位置”表包含完整的用户群。

问题: 我想扩展“访问”表,使其看起来像这样:

+--------+---------+--------+
| date   | user_id | visits |
+--------+---------+--------+
| 1/1/18 |    A    | 2      |
+--------+---------+--------+
| 1/2/18 |    A    | 4      |
+--------+---------+--------+
| 1/3/18 |    A    | 10     |
+--------+---------+--------+
| 1/4/18 |    A    | 34     |
+--------+---------+--------+
| 1/5/18 |    A    | 23     |
+--------+---------+--------+
| 1/1/18 |    B    | 15     |
+--------+---------+--------+
| 1/2/18 |    B    | 12     |
+--------+---------+--------+
| 1/3/18 |    B    | 0      |
+--------+---------+--------+
| 1/4/18 |    B    | 0      |
+--------+---------+--------+
| 1/5/18 |    B    | 0      |
+--------+---------+--------+
| 1/1/18 |    C    | 10     |
+--------+---------+--------+
| 1/2/18 |    C    | 0      |
+--------+---------+--------+
| 1/3/18 |    C    | 0      |
+--------+---------+--------+
| 1/4/18 |    C    | 0      |
+--------+---------+--------+
| 1/5/18 |    C    | 0      |
+--------+---------+--------+
| 1/1/18 |    D    | 5      |
+--------+---------+--------+
| 1/2/18 |    D    | 12     |
+--------+---------+--------+
| 1/3/18 |    D    | 15     |
+--------+---------+--------+
| 1/4/18 |    D    | 25     |
+--------+---------+--------+
| 1/5/18 |    D    | 0      |
+--------+---------+--------+
| 1/1/18 |    E    | 18     |
+--------+---------+--------+
| 1/2/18 |    E    | 0      |
+--------+---------+--------+
| 1/3/18 |    E    | 0      |
+--------+---------+--------+
| 1/4/18 |    E    | 0      |
+--------+---------+--------+
| 1/5/18 |    E    | 0      |
+--------+---------+--------+
| 1/1/18 |    F    | 0      |
+--------+---------+--------+
| 1/2/18 |    F    | 0      |
+--------+---------+--------+
| 1/3/18 |    F    | 0      |
+--------+---------+--------+
| 1/4/18 |    F    | 0      |
+--------+---------+--------+
| 1/5/18 |    F    | 0      |
+--------+---------+--------+
| 1/1/18 |    G    | 21     |
+--------+---------+--------+
| 1/2/18 |    G    | 10     |
+--------+---------+--------+
| 1/3/18 |    G    | 0      |
+--------+---------+--------+
| 1/4/18 |    G    | 0      |
+--------+---------+--------+
| 1/5/18 |    G    | 0      |
+--------+---------+--------+

这种格式的表格更容易让我在一张表格中对整个人口进行进一步分析。

我想在 R 中对此进行编码,最好使用 tidyverse。 我无法理解如何实现这一目标。感谢对此的任何见解和帮助。非常感谢!

【问题讨论】:

    标签: r dplyr tidyverse


    【解决方案1】:

    我们这里可能需要complete

    library(dplyr)
    library(tidyr)
    visits %>% 
       complete(date, user_id = location$user_id, fill = list(visits = 0))
    

    【讨论】:

      猜你喜欢
      • 2017-05-06
      • 2016-03-28
      • 2021-03-23
      • 2015-12-03
      • 1970-01-01
      • 2021-12-26
      • 2018-05-21
      • 2017-08-21
      • 2022-01-15
      相关资源
      最近更新 更多