有点像这里,我想从数字向量的每个元素中提取第一个数字,而不必将其转换为字符向量并返回。
d <- c(123, 2, 45)
预期产量:
[1] 1 2 4
我尝试使用进行其他操作floor()
,但没有获得理想的结果。
此处的一种数值方法是将每个输入数字除以10以对数底数10的底数。这意味着,例如,我们将输入123
乘以100
,除以yield 1.23
。然后,我们以此为底产生第一位数1
。
getFirstDigit <- function(x) {
floor(x / (10 ^ floor(log10(x))))
}
d <- c(123, 2, 45)
getFirstDigit(d)
[1] 1 2 4
更为暴力的方式是将输入向量转换为字符,采用第一个字符,然后转换回数字。但是,我怀疑这样做是否会胜过我上面的内容。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句