如何四舍五入到R中的特定小数
How to round to specific decimal numbers in R
我目前有 2 个全球数据数据集。一个是气候space,另一个是物种发生数据。两个数据集都有纬度和经度列。但是,气候 space 纬度和经度列为值 NNN.75 或 NNN.25。我的出现数据 Latitude 和 Longitude 更具体,从 NNN.01 到 NNN.99 不等。如何使用 R 将我的出现数据四舍五入到最接近的 .25 或 .75 点?
下面是我如何将我的出现点四舍五入到小数点后两位,但为了加入数据集,我需要匹配纬度和经度值。
occurrence <- Solanum_OccurrenceClean %>%
mutate_at(vars(lat,lon),funs(round(.,digits=2)))
感谢您的帮助!
在 R 中有两个有用的运算符 %%
和 %/%
可用于获取除法的整数部分和小数部分。如果你有这个,除以1你就可以轻松做到。
set.seed(123)
x <- rnorm(10, mean = 300)
ifelse(x %% 1 > 0.5,
x %/%1 + 0.75,
x %/%1 + 0.25)
向量来自这个
[1] 299.4395 299.7698 301.5587 300.0705 300.1293 301.7151 300.4609 298.7349 299.3131 299.5543
至此
[1] 299.25 299.75 301.75 300.25 300.25 301.75 300.25 298.75 299.25 299.75
你可以定义一个函数,比如
function (x) floor(x) + ifelse(x-floor(x)<=0.5,0.25,0.75)
我目前有 2 个全球数据数据集。一个是气候space,另一个是物种发生数据。两个数据集都有纬度和经度列。但是,气候 space 纬度和经度列为值 NNN.75 或 NNN.25。我的出现数据 Latitude 和 Longitude 更具体,从 NNN.01 到 NNN.99 不等。如何使用 R 将我的出现数据四舍五入到最接近的 .25 或 .75 点?
下面是我如何将我的出现点四舍五入到小数点后两位,但为了加入数据集,我需要匹配纬度和经度值。
occurrence <- Solanum_OccurrenceClean %>%
mutate_at(vars(lat,lon),funs(round(.,digits=2)))
感谢您的帮助!
在 R 中有两个有用的运算符 %%
和 %/%
可用于获取除法的整数部分和小数部分。如果你有这个,除以1你就可以轻松做到。
set.seed(123)
x <- rnorm(10, mean = 300)
ifelse(x %% 1 > 0.5,
x %/%1 + 0.75,
x %/%1 + 0.25)
向量来自这个
[1] 299.4395 299.7698 301.5587 300.0705 300.1293 301.7151 300.4609 298.7349 299.3131 299.5543
至此
[1] 299.25 299.75 301.75 300.25 300.25 301.75 300.25 298.75 299.25 299.75
你可以定义一个函数,比如
function (x) floor(x) + ifelse(x-floor(x)<=0.5,0.25,0.75)