繁体   English   中英

在 R 中的数据框中添加行

[英]Adding rows to the data frame in R

我有一个 dataframe 如下所示。我想为每个名称添加行,其中包含年份和一年中缺少的一周,总值为 0。

Name Year Week Total

    John 2021 1 3
    John 2021 2 2
    John 2021 5 1
    John 2021 10 2
    Mary 2020 3 1
    Mary 2021 5 2

预期结果

John 2021 1 3
John 2021 2 2
John 2021 3 0
John 2021 4 0
John 2021 5 1
John 2021 6 0
.
.
.
John 2021 53 0

这就是我想要做的

data1<-data %>% 
  complete(Week = seq(min(Week), max(Week), by = 'week')) %>%
  mutate_each(funs(ifelse(is.na(.),0,.)))

你走在正确的轨道上:

data %>%
  complete(Week = 1:53, Name, fill=list(Total=0))

给出了这个:

   Week Name   Year Total
   <int> <chr> <int> <dbl>
 1     1 John   2021     3
 2     2 John   2021     2
 3     3 John     NA     0
 4     4 John     NA     0
 5     5 John   2021     1
 6     6 John     NA     0
 7     7 John     NA     0
 8     8 John     NA     0
 9     9 John     NA     0
10    10 John   2021     2
# ... with 96 more rows

您可以使用fill(Year)将 Year 列的 NA 替换为之前的非 NA 值。 如果你也想做多年,那么你可以group_by Year,它会自动填充Year值。

我想这就是你要的:

x1  %>% 
  group_by(Name) %>%
  complete(Week = seq(min(Week), max(Week), by = 1), fill = list(Total = 0)) 

暂无
暂无

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

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