3
我想填充缺少的值在我的數據框中,但我不想要所有可能的變量組合 - 我只想填充基於三個變量的分組:課程代碼,年份和星期。在data.frame中使用dplyr在組中完成填充缺失值
我看着成完整的()在tidyr庫,但我不能得到它的工作,甚至在看Using tidyr::complete with group_by和https://blog.rstudio.org/2015/09/13/tidyr-0-3-0/
我有收集給週一年在不同的觀測數據後培訓班。例如,數據可能會在我的較大數據集中收集1-10周,但我只關心特定課程年組合中發生的缺失周。 例如,
- 在過程在年甲,數據收集在周1,圖3和4。
- 我想知道第2周不見了。
- 我不認爲每週5缺少關心,即使有人在課程b,否則收集5周的數據,2000年
例子:
library(dplyr)
library(tidyr)
df <- data.frame(coursecode = rep(c("A", "B"), each = 6),
year = rep(c(2000, 2000, 2000, 2001, 2001, 2001), 2),
week = c(1, 3, 4, 1, 2, 3, 2, 3, 5, 3, 4, 5),
values = c(1:12),
othervalues = c(12:23),
region = "Big")
df
coursecode year week values othervalues region
1 A 2000 1 1 12 Big
2 A 2000 3 2 13 Big
3 A 2000 4 3 14 Big
4 A 2001 1 4 15 Big
5 A 2001 2 5 16 Big
6 A 2001 3 6 17 Big
7 B 2000 2 7 18 Big
8 B 2000 3 8 19 Big
9 B 2000 5 9 20 Big
10 B 2001 3 10 21 Big
11 B 2001 4 11 22 Big
12 B 2001 5 12 23 Big
嘗試完成:(不是我期望的輸出)
df %>%
complete(coursecode, year, region, nesting(week))
# A tibble: 20 x 6
coursecode year region week values othervalues
<fctr> <dbl> <fctr> <dbl> <int> <int>
1 A 2000 Big 1 1 12
2 A 2000 Big 2 NA NA
3 A 2000 Big 3 2 13
4 A 2000 Big 4 3 14
5 A 2000 Big 5 NA NA
6 A 2001 Big 1 4 15
7 A 2001 Big 2 5 16
8 A 2001 Big 3 6 17
9 A 2001 Big 4 NA NA
10 A 2001 Big 5 NA NA
11 B 2000 Big 1 NA NA
12 B 2000 Big 2 7 18
13 B 2000 Big 3 8 19
14 B 2000 Big 4 NA NA
15 B 2000 Big 5 9 20
16 B 2001 Big 1 NA NA
17 B 2001 Big 2 NA NA
18 B 2001 Big 3 10 21
19 B 2001 Big 4 11 22
20 B 2001 Big 5 12 23
所需的輸出
coursecode year region week values othervalues
<fctr> <dbl> <fctr> <dbl> <int> <int>
1 A 2000 Big 1 1 12
2 A 2000 Big 2 NA NA
3 A 2000 Big 3 2 13
4 A 2000 Big 4 3 14
5 A 2001 Big 1 4 15
6 A 2001 Big 2 5 16
7 A 2001 Big 3 6 17
8 B 2000 Big 2 7 18
9 B 2000 Big 3 8 19
10 B 2000 Big 4 NA NA
11 B 2000 Big 5 9 20
12 B 2001 Big 3 10 21
13 B 2001 Big 4 11 22
14 B 2001 Big 5 12 23
你讓我星期五下午值得停留有點晚了。謝謝!這很奇怪--dplyr爲您編寫的代碼提供了一個進度條,並且不適用於本週早些時候在http://stackoverflow.com/questions/42725428/how-to-add-progress-bar-inside上編寫的代碼-dplyr-chain-in-r ...奇怪爲什麼。 – Nova
@JakeKaupp OP已經用'complete'嘗試過了,但沒有成功 – akrun