我想在R中写一个floor函数,它返回一个浮点数到它最接近的整数。所以我尝试了以下功能。似乎它可以工作,如果我为x分配一个值并在函数内部运行代码,但是当我尝试将所有内容放入函数并稍后调用函数名时它会失败。
有谁知道如何修复它? 谢谢!
> my_floor <- function(x) {
x <- x-0.5
as.integer(x)
return (x)
}
> y <- 3.1052255
> my_floor(y)
[1] 2.605225
答案 0 :(得分:0)
不确定你要做什么,但是如果你只是想将输入变换为最接近的整数为零(即你的问题是 floored ),那么这样做的一种方法就是是:
my_floor <- function(x) {
x <- trunc(x)
return (x)
}
这只是使用R trunc
丢弃输入的非整数部分:您可以直接调用它,trunc(y)
仍会提供所需的结果。如果您希望“按原样”使用上面的功能,那么:
my_floor <- function(x) {
x <- x-0.5
x <- as.integer(x) #Store the result of this second step by reassigning x
return (x)
}