Функция пола для целых чисел: найти наименьшее значение в десятках - PullRequest
2 голосов
/ 21 апреля 2020

Кто-то должен был это сделать, но я не вижу ответа. Я хочу округлить вектор чисел до ближайшего десятого места. Я знаю, что могу использовать функцию floor, если она десятичная, но это не работает для целых чисел

# this works, for decimals
floor( 9576.44 )
# I would like this to return 9570
round( 9576 , -1 )

Ответы [ 2 ]

2 голосов
/ 21 апреля 2020

То есть вы всегда хотите вырезать последние несколько цифр для округления? Как насчет этой функции

clip <- function(x, d=1) x - x %% 10**d

Она просто выполняет математический модуль, чтобы найти последний ди git числа и вычесть его.

Затем вы можете сделать

clip( 9576 , 1 )
# [1] 9570
clip( 9576 , 2 )
# [1] 9500

Или все еще используя слово, вы можете просто разделить и умножить на 10

floor(9576 /10) *10
# [1] 9570
1 голос
/ 21 апреля 2020

Это создает функцию, которая делит ваше число на 10 и дает вам целую часть числа. Затем умножьте число на 10, чтобы получить число, на которое вы вменили слово в десятке

newfloor <- function(X){ 
    (X %/% 10 ) *10}

newfloor(9576)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...