Быстрое исправление
Этого можно добиться, передав аргумент accuracy
в label_comma
.
accuracy = 1
, чтобы гарантировать отсутствие показа чисел после запятой.
Попытка объяснения
В вашей серии чисел должно быть что-то, что убеждает label_comma
в том, что ему нужно использовать десятые для различения guish некоторых чисел. См. документацию :
точность : ... Если по умолчанию NULL, используется значение heuristi c, которое должно обеспечивать минимальное число разрывов цифр, необходимых для отображения разницы между соседними значениями.
Это объясняет, почему ваш тестовый пример не отвечает так же, как ваш исходный df: он не вызывает различающуюся heuristi c .
Примеры того, как это сделать
Ниже представлен пример, который предоставляет различные способы преобразования вашей серии чисел в строки в формате запятой без чисел после запятой. Очевидно, что вам они не нужны, но я просто проверял, что происходит в разных ситуациях.
Я использовал только ваши первые пять чисел, как видно из вашего вопроса. В будущем, пожалуйста, постарайтесь создать воспроизводимых примеров - Я обычно нахожу, что этот процесс приводит меня к решению моей проблемы, прежде чем мне даже придется спрашивать!
Вы можете вставить свой более полный ряд чисел в Пример ниже, и посмотрите, что произойдет.
Первые несколько примеров ниже не используют аргумент accuracy
; последние пару примеров делают. Но во всех случаях нет чисел после десятичной точки.
Последний пример заменяет ваш первый первый столбец отформатированными числами (в виде строк) - так я бы предпочел выполнить эту операцию, но вы можете выбрать, что работает для вас.
library(scales)
library(tibble)
library(dplyr)
#>
#> Attaching package: 'dplyr'
#> The following objects are masked from 'package:stats':
#>
#> filter, lag
#> The following objects are masked from 'package:base':
#>
#> intersect, setdiff, setequal, union
df <- tibble(inpatient_discharge = c(2914, 2662, 2566, 2513, 2672))
str(df)
#> Classes 'tbl_df', 'tbl' and 'data.frame': 5 obs. of 1 variable:
#> $ inpatient_discharge: num 2914 2662 2566 2513 2672
# add column using label_comma
df["discharge_label_comma"] <- scales::label_comma()(df[[1]])
str(df)
#> Classes 'tbl_df', 'tbl' and 'data.frame': 5 obs. of 2 variables:
#> $ inpatient_discharge : num 2914 2662 2566 2513 2672
#> $ discharge_label_comma: chr "2,914" "2,662" "2,566" "2,513" ...
# add column using comma alias
df["discharge_comma"] <- scales::comma(df[[1]])
str(df)
#> Classes 'tbl_df', 'tbl' and 'data.frame': 5 obs. of 3 variables:
#> $ inpatient_discharge : num 2914 2662 2566 2513 2672
#> $ discharge_label_comma: chr "2,914" "2,662" "2,566" "2,513" ...
#> $ discharge_comma : chr "2,914" "2,662" "2,566" "2,513" ...
# add column using dplyr::mutate
df <- df %>% dplyr::mutate(discharge_comma_mutate = scales::comma(inpatient_discharge))
str(df)
#> Classes 'tbl_df', 'tbl' and 'data.frame': 5 obs. of 4 variables:
#> $ inpatient_discharge : num 2914 2662 2566 2513 2672
#> $ discharge_label_comma : chr "2,914" "2,662" "2,566" "2,513" ...
#> $ discharge_comma : chr "2,914" "2,662" "2,566" "2,513" ...
#> $ discharge_comma_mutate: chr "2,914" "2,662" "2,566" "2,513" ...
# add column using accuracy argument
df["discharge_comma_acc"] <- scales::comma(df[[1]], accuracy = 1)
str(df)
#> Classes 'tbl_df', 'tbl' and 'data.frame': 5 obs. of 5 variables:
#> $ inpatient_discharge : num 2914 2662 2566 2513 2672
#> $ discharge_label_comma : chr "2,914" "2,662" "2,566" "2,513" ...
#> $ discharge_comma : chr "2,914" "2,662" "2,566" "2,513" ...
#> $ discharge_comma_mutate: chr "2,914" "2,662" "2,566" "2,513" ...
#> $ discharge_comma_acc : chr "2,914" "2,662" "2,566" "2,513" ...
# convert initial first column using dplyr::mutate_at and accuracy argument
# (alternatively use dplyr::transmute or mutate_all/mutate_if)
df <- df %>% mutate_at(vars(inpatient_discharge), ~ scales::comma(., accuracy = 1))
str(df)
#> Classes 'tbl_df', 'tbl' and 'data.frame': 5 obs. of 5 variables:
#> $ inpatient_discharge : chr "2,914" "2,662" "2,566" "2,513" ...
#> $ discharge_label_comma : chr "2,914" "2,662" "2,566" "2,513" ...
#> $ discharge_comma : chr "2,914" "2,662" "2,566" "2,513" ...
#> $ discharge_comma_mutate: chr "2,914" "2,662" "2,566" "2,513" ...
#> $ discharge_comma_acc : chr "2,914" "2,662" "2,566" "2,513" ...
Создано в 2020-02-20 пакетом Представить (v0.3.0)