Скажем, у меня есть фрейм данных R df:
id value
0 a 0.00016
1 b 0.0324789
2 c 0.05583726
3 d 0.02
Как я могу преобразовать `df$value$ в десятичные числа ровно с 6 знаками после запятой, как показано ниже?
id value
0 a 0.000160
1 b 0.032478
2 c 0.005837
3 d 0.020000
Я пытался использовать round(df$value, digits=6), но он усекает только те, у которых больше 6 знаков после запятой, но не добавляет больше нулей к тем, у которых меньше 6 знаков после запятой.





Вместо round() я использую format()
x <- tribble(~id, ~value,
"a", 0.00016,
"b", 0.0324789,
"c", 0.05583726,
"d", 0.02)
x %>% mutate(value_digits=format(value,nsmall = 6))
Я получаю следующий вывод:
id value value_digits
<chr> <dbl> <chr>
1 a 0.00016 0.000160
2 b 0.0325 0.032479
3 c 0.0558 0.055837
4 d 0.02 0.020000
БАЗА R
#assume x to be the name of the dataframe
x$value <- format(x$value,nsmall=6)
Привет! я использовал только dplyr::mutate, чтобы добавить столбец, чтобы показать цифры рядом. Ключевой формулой здесь является format() и аргумент nsmall. Я исправлю свой ответ, чтобы показать вам, как это сделать в базе R. Если вы найдете это полезным, не стесняйтесь выбирать в качестве ответа или голосовать.
Спасибо! Есть ли другой способ сделать это без использования пакета dplyr?