У меня большой набор данных с участниками со всего мира.Некоторые из этих участников вводили данные, используя точки / точки / запятые, чтобы указать тысячи разделителей, но R считывает их как запятые, которые полностью искажают мои данные ... например, 1234 становятся 1234.
Я хочу удалить все точки /периодов / запятых.Мои данные полностью состоят из полных чисел, поэтому нигде не должно быть десятичных знаков.
Я пытался использовать stringr, но не могу понять.Вот (я надеюсь) воспроизводимый пример с небольшой выборкой моих данных:
structure(
list(
chnb = c(10L, 35L, 55L),
B1_1_77 = c(117.586,
4022, 4.921),
C1_1_88 = c(NA, 2206, 1.111),
C1_1_99 = c(6.172,
1884, 0),
C1_3_99 = c(5.62, 129, 0)
),
row.names = c(NA,-3L),
class = c("tbl_df",
"tbl", "data.frame")
)
Я попробовал это:
prob1 <- prob %>% str_replace_all('\\.', '')
, что дает мне это:
> prob
[1] "c(10, 35, 55)" "c(117586, 4022, 4921)" "c(NA, 2206, 1111)"
[4] "c(6172, 1884, 0)" "c(562, 129, 0)"
Он действительно удалил точки, но дал мне простой список и полностью потерял мою структуру данных.Поиск в Интернете показал, что я сделал это:
prob1 <- prob %>% mutate_all(list(str_replace(., '\\.', '')))
, но я получаю сообщение об ошибке:
Ошибка: .fn
должна быть длиной в 1 строку. Вызовите rlang::last_error()
, чтобы увидетьобратная трассировка Дополнительно: предупреждающее сообщение: в stri_replace_first_regex (строка, шаблон, fix_replacement (замена),: аргумент не является атомным вектором;очень признателен. Я надеюсь, что мой вопрос достаточно ясен, мои извинения, если это не так (я новичок в этом).