R - как очистить REGEX более эффективным способом - PullRequest
0 голосов
/ 22 апреля 2020

ребята.

Я новичок в R, и у меня были трудные времена, когда я пытался сделать код очистки данных более эффективным.

У меня в основном есть тиббл с несколькими столбцами с символами REGEX ("R $" и ","), и мне нужно удалить их, чтобы успешно преобразовать эти столбцы в as.numeri c.

Я мог бы понять, как очистить столбец один за другим, но в результате, как вы можете видеть, много повторяющихся кодов:

clean$total_amount <- as.numeric(sub(",", ".", clean$total_amount, fixed = TRUE))
clean$net_amount_received <- as.numeric(sub(",", ".", clean$net_amount_received, fixed = TRUE))
clean$fee_gateway <- as.numeric(sub(",", ".", clean$fee_gateway, fixed = TRUE)

и так далее, больше 10 столбцы ...

Я пробовал функции и лапы функции, но ничего не получалось. Не могли бы вы помочь мне с этим, пожалуйста?

1 Ответ

0 голосов
/ 22 апреля 2020

Мы можем сделать это с помощью mutate_at

library(dplyr)
library(stringr)
clean  <- clean %>%
        mutate_at(vars(total_amount, net_amount_received, fee_gateway),
          str_replace, pattern = ",", replacement = ".")) %>%
         type.convert(as.is = TRUE)

Но это можно было бы предотвратить, считывая сами данные с помощью read.csv с указанием dec

clean <- read.csv('file.csv', dec = ",", stringsAsFactors = FALSE)
...