背景:
假设我具有产生数字结果(例如.00235
,2
,CC_2,8
等)的高级函数,并且"Result is Unacceptable"
等)。
问题:
我写了一个小的低级功能,以控制r。
中显示的小数点(称为decimal(see below)
)我的decimal()
函数如何才能在我的上层功能的结果为数字和时才能工作起来> ## decimal display controller:
decimal <- function(x, k) format(round(x, k), nsmall = k, scientific =
ifelse(x >= 1e+05 || x <= -1e+05 || x <= 1e-05 & x >= -1e-05, T, F) )
## Example of use:
x = .000276573 ## HERE x is a numeric result, what if x = "Not possible"
decimal(x, 7)
您可以检查 typeof
的x并在不处理的情况下返回它。
## decimal display controller:
decimal <- function(x, k){
if(typeof(x) == "character"){
return(x)
}
format(round(x, k), nsmall = k, scientific =
ifelse(x >= 1e+05 || x <= -1e+05 || x <= 1e-05 & x >= -1e-05, T, F) )
}
decimal("sam", 7)
#[1] "sam"
decimal(.3, 7)
#[1] "0.3000000"
还查看
?is.character
?is.numeric