У меня есть набор данных по всем продажам за 2018 год, и я пытаюсь провести анализ Парето.Предполагается, что данные имеют категорию продукта, и большинство из них имеют, но 1/5 нет.Теперь я хочу заполнить эти значения NA категорией продукта из другого блока данных, но мне это не удается.
Упрощенный пример ниже:
df1 <- data.frame(ID = c("1000", "1000", "1000", "1000", "1010", "1020", "1030", "1030", "1000"),
name = c("A", "B", "C", "D", "A", "A", "B", "F", "G"),
group_ID = c(NA, NA, NA, NA, NA, NA, NA, NA, NA), stringsAsFactors = FALSE)
df2 <- data.frame(IDx = c("1000", "1000", "1000", "1000", "1000", "1000", "1000", "1000", "1000"),
group_ID = c("blankets", "blankets", "blankets", "blankets", "blankets", "blankets", "blankets", "blankets", "blankets"),
stringsAsFactors = FALSE)
df1[is.na(df1)] <- "None"
df1 %>%
left_join(df2, by = c("ID" = "IDx")) %>%
mutate(group_ID = coalesce(group_ID.y, group_ID.x)) %>%
select(-group_ID.x, -group_ID.y)
Результатом этого кода является следующий кадр данных:
ID name group_ID
1 1000 A blankets
2 1000 A blankets
3 1000 A blankets
4 1000 A blankets
5 1000 A blankets
6 1000 A blankets
7 1000 A blankets
8 1000 A blankets
9 1000 A blankets
10 1000 B blankets
11 1000 B blankets
12 1000 B blankets
13 1000 B blankets
14 1000 B blankets
15 1000 B blankets
16 1000 B blankets
17 1000 B blankets
18 1000 B blankets
19 1000 C blankets
20 1000 C blankets
21 1000 C blankets
22 1000 C blankets
23 1000 C blankets
24 1000 C blankets
25 1000 C blankets
26 1000 C blankets
27 1000 C blankets
28 1000 D blankets
29 1000 D blankets
30 1000 D blankets
31 1000 D blankets
32 1000 D blankets
33 1000 D blankets
34 1000 D blankets
35 1000 D blankets
36 1000 D blankets
37 1010 A None
38 1020 A None
39 1030 B None
40 1030 F None
41 1000 G blankets
42 1000 G blankets
43 1000 G blankets
44 1000 G blankets
45 1000 G blankets
46 1000 G blankets
47 1000 G blankets
48 1000 G blankets
49 1000 G blankets
Я не хочу этого.Я хочу что-то вроде:
ID name group_ID
1 1000 A blankets
2 1000 B blankets
3 1000 C blankets
4 1000 D blankets
5 1010 A None
6 1020 A None
7 1030 B None
8 1030 F None
9 1000 G blankets
Я попробовал несколько соединений и посмотрел в Интернете, но не могу решить мою проблему.
Надеюсь, вы можете помочь!