Я знаю, что эта тема затрагивалась несколько раз в SO, но я не смог найти ответа на свою проблему.
У меня есть следующие данные (отредактированы, добавлены полные реальные данные):
structure(list(Expo = structure(c(1L, 1L, 1L, 1L, 1L, 1L, 1L,
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L,
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L,
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L,
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L,
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L,
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L,
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L,
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 2L, 2L, 2L, 2L, 2L, 2L, 2L,
2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L,
2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L,
2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L,
2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L,
2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L,
2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L), .Label = c("DC", "DI"), class = "factor"),
day = c(3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L,
3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 5L, 5L, 5L, 5L, 5L, 5L,
5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L,
5L, 5L, 5L, 5L, 5L, 5L, 5L, 7L, 7L, 7L, 7L, 7L, 7L, 7L, 7L,
7L, 7L, 7L, 7L, 7L, 7L, 7L, 7L, 7L, 7L, 7L, 7L, 7L, 7L, 7L,
7L, 7L, 7L, 9L, 9L, 9L, 9L, 9L, 9L, 9L, 9L, 9L, 9L, 9L, 9L,
9L, 9L, 9L, 9L, 9L, 9L, 9L, 9L, 9L, 9L, 9L, 9L, 9L, 10L,
10L, 10L, 10L, 10L, 10L, 10L, 10L, 10L, 10L, 10L, 10L, 10L,
10L, 10L, 10L, 10L, 10L, 10L, 10L, 10L, 10L, 10L, 10L, 10L,
10L, 10L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L,
1L, 1L, 1L, 1L, 1L, 1L, 1L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L,
3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 5L, 5L, 5L, 5L, 5L, 5L, 5L,
5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 7L, 7L, 7L,
7L, 7L, 7L, 7L, 7L, 7L, 7L, 7L, 7L, 7L, 7L, 7L, 7L, 7L, 7L,
7L, 7L, 7L, 7L, 7L, 7L, 7L, 7L, 7L, 9L, 9L, 9L, 9L, 9L, 9L,
9L, 9L, 9L, 9L, 9L, 9L, 9L, 9L, 9L), SYN = c("S", "U", "N",
"S", "U", "N", "S", "U", "N", "S", "U", "N", "S", "U", "N",
"S", "U", "N", "S", "U", "N", "S", "U", "N", "S", "U", "N",
"S", "U", "N", "S", "U", "N", "S", "U", "N", "S", "U", "N",
"S", "U", "N", "S", "U", "N", "S", "U", "N", "S", "U", "N",
"S", "U", "N", "S", "U", "N", "S", "U", "N", "S", "U", "N",
"S", "U", "N", "S", "U", "N", "S", "U", "N", "S", "U", "N",
"S", "U", "N", "S", "U", "N", "S", "U", "N", "S", "U", "N",
"S", "U", "N", "S", "U", "N", "S", "U", "N", "S", "U", "N",
"S", "U", "N", "S", "U", "N", "S", "U", "N", "S", "U", "N",
"S", "U", "N", "S", "U", "N", "S", "U", "N", "S", "U", "N",
"S", "U", "N", "S", "U", "N", "S", "U", "N", "S", "U", "N",
"S", "U", "N", "S", "U", "N", "S", "U", "N", "S", "U", "N",
"S", "U", "N", "S", "U", "N", "S", "U", "N", "S", "U", "N",
"S", "U", "N", "S", "U", "N", "S", "U", "N", "S", "U", "N",
"S", "U", "N", "S", "U", "N", "S", "U", "N", "S", "U", "N",
"S", "U", "N", "S", "U", "N", "S", "U", "N", "S", "U", "N",
"S", "U", "N", "S", "U", "N", "S", "U", "N", "S", "U", "N",
"S", "U", "N", "S", "U", "N", "S", "U", "N", "S", "U", "N",
"S", "U", "N", "S", "U"), freq.n = c(19L, 6L, 1L, 4L, 2L,
3L, 2L, 1L, 12L, 10L, 1L, 1L, 1L, 1L, 24L, 4L, 1L, 1L, 3L,
1L, 1L, 8L, 49L, 9L, 2L, 3L, 6L, 3L, 2L, 1L, 12L, 7L, 2L,
1L, 2L, 1L, 1L, 2L, 1L, 2L, 38L, 3L, 3L, 1L, 3L, 1L, 1L,
2L, 4L, 2L, 105L, 7L, 4L, 3L, 1L, 1L, 2L, 5L, 11L, 21L, 2L,
1L, 2L, 1L, 1L, 2L, 3L, 67L, 5L, 2L, 6L, 4L, 1L, 1L, 9L,
4L, 97L, 19L, 10L, 3L, 6L, 1L, 2L, 2L, 12L, 12L, 2L, 1L,
1L, 2L, 2L, 4L, 95L, 14L, 8L, 2L, 2L, 1L, 1L, 4L, 5L, 153L,
56L, 13L, 10L, 2L, 4L, 3L, 5L, 4L, 12L, 12L, 1L, 2L, 1L,
2L, 1L, 2L, 82L, 33L, 10L, 6L, 3L, 2L, 2L, 2L, 4L, 6L, 82L,
3L, 2L, 1L, 3L, 1L, 2L, 3L, 20L, 5L, 3L, 30L, 7L, 5L, 3L,
2L, 1L, 2L, 1L, 66L, 10L, 4L, 1L, 1L, 1L, 2L, 23L, 1L, 3L,
5L, 3L, 53L, 11L, 3L, 1L, 108L, 18L, 10L, 3L, 1L, 1L, 2L,
3L, 14L, 1L, 1L, 2L, 2L, 3L, 2L, 101L, 14L, 4L, 1L, 122L,
33L, 9L, 1L, 1L, 2L, 3L, 2L, 3L, 9L, 10L, 2L, 1L, 2L, 1L,
1L, 1L, 65L, 20L, 2L, 5L, 2L, 1L, 3L, 2L, 1L, 3L, 11L, 3L,
3L, 1L, 1L, 4L, 2L, 1L, 1L, 1L, 6L, 2L, 2L, 1L, 1L)), class = c("tbl_df",
"tbl", "data.frame"), row.names = c(NA, -224L))
Я запустил следующий код:
library(dplyr)
q = c("3" = "1",
"5" = "3",
"7" = "5",
"9" = "7",
"10" = "8")
Pi %>%
mutate(day = if_else(Expo == "DC",
replace(day, day == day, q), as.character(day)))
Я получаю это предупреждение In x [list] <- values: количество заменяемых элементов не кратно длине замены </strong> со следующим результатом.
После изменения вопроса: Подмножество примеров того, что я получаю.
# A tibble: 6 x 6
Expo day SYN freq.n
<fct> <chr> <chr> <int>
1 DC 1 S 19
2 DC 3 U 6
3 DC 5 N 1
4 DC 7 S 4
5 DC 8 U 2
6 DC 1 N 3
Очевидно, что в «день» назначаются неправильные значения.
Ожидаемый результат должен быть:
# A tibble: 6 x 6
Expo day SYN freq.n
<fct> <chr> <chr> <int>
1 DC 1 S 19
2 DC 1 U 6
3 DC 1 N 1
4 DC 1 S 4
5 DC 1 U 2
6 DC 1 N 3
Дело в том, что та же самая строка кода отлично работает с аналогичным tbl.
Я был бы признателен за комментарий, который может указать мне на в правильном направлении.
Заранее большое спасибо.