Как конвертировать символов в цифры c с помощью U $ - PullRequest
1 голос
/ 08 апреля 2020

Я очень новичок в R и у меня есть элементарные вопросы.

У меня есть таблица, содержащая следующее

 Date         Debt
<date>         <chr>
2001-12-01    1,000,000
2002-01-01    2,000,000
2002-02-01    3,000,000

Выше у меня есть фрагмент кода, который следует. Я хочу преобразовать символ в цифру c, но я хочу добавить U $ перед цифрами с десятичными числами.

library(magrittr)
library(stringr)
library(tidyverse)
#format to U$

format_dollar <- function(values, nsmall = 2) {
  values %>%
    as.numeric() %>%
  format(nsmall = nsmall, decimal.mark = ",",big.mark = ".") %>%
    str_trim() %>%
    str_c("U$", .)
}

format_dollar(tbl) %>% print()

Но каждый раз, когда я запускаю этот фрагмент кода, это вывод

[1] "U$NA" "R$NA" "U$NA"

Буду признателен, если кто-нибудь сможет мне помочь, пожалуйста

1 Ответ

3 голосов
/ 08 апреля 2020

, сделает столбец character. Применяя as.numeric, он конвертирует их всех в NA. Вместо этого мы можем удалить те с str_remove_all и преобразовать в numeric (но добавление $ в качестве префикса сделает его классом character)

library(dplyr)
library(stringr)
tbl %>%
   mutate(Debt = as.numeric(str_remove_all(Debt, ',')))
...