R:向数据帧添加0
如何在 1990 年为源太阳能添加 0 量到下面的数据框中?1990 年的太阳能目前没有价值。
数据:
| 年 | 来源 | 数量 |
|---|---|---|
| 1990年 | 煤炭 | 19203 |
| 1990年 | 核 | 2345 |
| 1991年 | 煤炭 | 18490 |
| 1991年 | 核 | 2398 |
| 1991年 | 太阳的 | 123 |
| 1992年 | ... | ... |
| ... | ... | ... |
| 2019年 | ... | ... |
回答
我们可以使用complete从tidyr
library(tidyr)
complete(data, year, source, fill = list(amount = 0))
-输出
# A tibble: 6 x 3
# year source amount
# <int> <chr> <dbl>
#1 1990 coal 19203
#2 1990 nuclear 2345
#3 1990 solar 0
#4 1991 coal 18490
#5 1991 nuclear 2398
#6 1991 solar 123
另外,如果有一些'年份',缺少。我们可以使用一个范围
complete(data, year = 1990:2019, source, fill = list(amount = 0))
数据
data <- structure(list(year = c(1990L, 1990L, 1991L, 1991L, 1991L),
source = c("coal",
"nuclear", "coal", "nuclear", "solar"), amount = c(19203L, 2345L,
18490L, 2398L, 123L)), class = "data.frame", row.names = c(NA,
-5L))