R中which.max函数的公差是多少?

时间:2019-08-07 11:21:35

标签: r precision which

基于我在这里讨论的一个问题:https://stackoverflow.com/a/57364028/2725773我想知道R中pandoc input.tex -f latex -t docx -s -o output.docx --bibliography references.bib --csl=mystyle.csl 函数的公差/精度是多少。

具体来说,备用which.max函数的公差为1e-5,这意味着0.12345与0.12346相同。

max.col的帮助页面建议了一种替代方法,即使用max.col,这使我想到unname(apply(m, 1, which.max))的容忍度是什么?

1 个答案:

答案 0 :(得分:3)

有趣的问题。我不知道确切的答案。但是可以测试一些非常小数字以查看会发生什么。

# the fourth element is the max
c(1,2,3,4,2) %>% which.max
# [1] 4

vec <- c(1,2,3,4,2)

# how tiny can the numbers become before which.max cannot tell the difference between them?
for(i in 1:30) {

  vec <- vec / (10 ^ i)
  max_num <- vec %>% which.max 
  print(vec)
  print(max_num)

}

这些数字看起来可以达到的最小值是1e-300 2e-300 3e-300 4e-300 2e-300(在下一次迭代中,which.max无法分辨出差异)