简体   繁体   English

如何为给定数据框填充R中缺少的数据点

[英]How can I fill missing data points in R for a given dataframe

I have a dataframe which contains dates, products and amounts. 我有一个包含日期,产品和金额的数据框。 However product b is not on every date, I would like it to be with an NA or 0 balance. 但是产品b并非在每个日期都有效,我希望它的NA或余额为0。 Is this possible? 这可能吗?

Summary_Date <- 
  as.Date(c("2017-01-31",
        "2017-02-28",
        "2017-03-31",
        "2017-03-31",
        "2017-04-30",
        "2017-05-31",
        "2017-05-31",
        "2017-06-30"))
Product <-
  as.character(c("a","a","a","b","a","a","b","a"))
Amounts <-
  as.numeric(c(10,10,10,20,10,10,20,10))

df <- data.frame(Summary_Date,Product,Amounts)

Regards, Aksel 问候,阿克塞尔

You can use tidyr : 您可以使用tidyr

> library(tidyr)
> complete(data = df,Summary_Date,Product)
# A tibble: 12 x 3
   Summary_Date Product Amounts
         <date>  <fctr>   <dbl>
 1   2017-01-31       a      10
 2   2017-01-31       b      NA
 3   2017-02-28       a      10
 4   2017-02-28       b      NA
 5   2017-03-31       a      10
 6   2017-03-31       b      20
 7   2017-04-30       a      10
 8   2017-04-30       b      NA
 9   2017-05-31       a      10
10   2017-05-31       b      20
11   2017-06-30       a      10
12   2017-06-30       b      NA

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM