У меня есть данные, которые выглядят так:
# A tibble: 20 x 2
grp cents
<int> <chr>
1 4625 "48 cents to 49 cents\n34 cents to 38 cents"
2 5832 "71 cents to 79 cents"
3 6131 "5 cents to 10 cents"
4 5719 "71 cents to 76 cents\n71 cents to 78 cents"
5 4998 "37 cents to 50 cents\n40 cents to 56 cents"
6 6579 "92 cents to 94 cents"
Я очищаю столбец cents
, используя:
d %>%
mutate(
cents = str_replace_all(cents, "cents to", "-"),
cents = str_replace_all(cents, "cents", "")
)
Что теперь выглядит так:
# A tibble: 20 x 2
grp cents
<int> <chr>
1 4625 "48 - 49 \n34 - 38 "
2 5832 "71 - 79 "
3 6131 "5 - 10 "
4 5719 "71 - 76 \n71 - 78 "
5 4998 "37 - 50 \n40 - 56 "
6 6579 "92 - 94 "
7 4074 "47 - 51 \n42 - 50
Я хочу добавить 0.
или 0.0
к каждому из чисел так, чтобы окончательные данные выглядели так:
# A tibble: 20 x 2
grp cents
<int> <chr>
1 4625 "0.48 - 0.49 \n0.34 - 0.38 "
2 5832 "0.71 - 0.79 "
3 6131 "0.05 - 0.10 " # NOTE: Here
4 5719 "0.71 - 0.76 \n0.71 - 0.78 "
5 4998 "0.37 - 0.50 \n0.40 - 0.56 "
6 6579 "0.92 - 0.94 "
7 4074 "0.47 - 0.51 \n0.42 - 0.50
Я помещаю примечание в данные, просто добавив 0.
на следующую строку:
3 6131 "5 - 10 "
Дало бы неверный результат. Поэтому для этой строки я хотел бы 0.05 - 0.10
. Итак, я хочу добавить какое-то условие: если число имеет 1 di git, добавьте 0.0X
, если число состоит из двух цифр, добавьте 0.X
.
Data:
d <- structure(list(grp = c(4625L, 5832L, 6131L, 5719L, 4998L, 6579L,
4074L, 3663L, 766L, 911L, 3051L, 348L, 6062L, 7533L, 2714L, 2309L,
6072L, 569L, 1555L, 2753L), cents = c("48 cents to 49 cents\n34 cents to 38 cents",
"71 cents to 79 cents", "5 cents to 10 cents", "71 cents to 76 cents\n71 cents to 78 cents",
"37 cents to 50 cents\n40 cents to 56 cents", "92 cents to 94 cents",
"47 cents to 51 cents\n42 cents to 50 cents", "13 cents to 15 cents",
"5 cents to 6 cents\n24 cents to 25 cents", "12 cents to 27 cents\n43 cents to 58 cents",
"46 cents to 62 cents", "82 cents to 88 cents", "3 cents to 10 cents",
"45 cents to 51 cents", "4 cents to 8 cents", "3 cents to 10 cents\n23 cents to 30 cents",
"38 cents to 42 cents", "15 cents to 25 cents", "14 cents to 17 cents",
"33 cents to 35 cents\n33 cents to 35 cents\n33 cents to 35 cents"
)), class = c("tbl_df", "tbl", "data.frame"), row.names = c(NA,
-20L))