Обработка строки R - - PullRequest
       0

Обработка строки R -

1 голос
/ 27 января 2020

У меня ниже фрейм данных с двумя входными строками (столбец input1 и input2) и мне нужна помощь для преобразования выходной строки (как описано в выходном столбце). Я ищу решение с использованием базы R (желательно регулярное выражение)

df <- data.frame(input1=c("0000.00", "0000.00", "0000.00"),
                 input2 = c("23.3", "23", "2323.23"), 
                 output = c("0023.30", "0023.00", "2323.23"))

1 Ответ

3 голосов
/ 27 января 2020

Попробуйте следующее: он использует formatC, чтобы получить правильную ширину вывода и десятичные разряды. Он определяет количество цифр до и после десятичной точки с помощью strsplit/sapply/nchar.

fun <- function(X){
  sp <- strsplit(as.character(X[[1]]), "\\.")
  m <- max(nchar(sapply(sp, '[[', 1)))
  n <- max(nchar(sapply(sp, '[[', 2)))

  formatC(as.numeric(as.character(X[[2]])),
          digits = n, width = m + n + 1, 
          format = "f", flag = "0")
}

fun(df)
#[1] "0023.30" "0023.00" "2323.23"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...