背景
假设我有一个产生数字结果的上层函数(例如.00235
,2
,8
等)和非 - 数字结果(例如,"Not Possible"
,"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)
答案 0 :(得分:1)
您可以检查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