r - 理解 R 中的 Pretty()

我试图理解 R 中的函数 pretty() 但遇到了麻烦。

temp <- pretty(1:5,n=5)
# temp is 1 2 3 4 5

temp <- pretty(1:6, n=6)
# temp is 1 2 3 4 5 6

temp <- pretty(1:3, n=3)
#temp is 1.0 1.5 2.0 2.5 3.0

temp <- pretty(1:3, n=2)
#temp is 1 2 3

temp <- pretty(1:15, n=3)
#temp is 0  2  4  6  8 10 12 14 16

我尝试阅读文档,但仍然对上面提供的最后 3 个示例感到迷惑。

任何帮助将不胜感激!! 提前致谢。

最佳答案

总结:pretty 返回有些模糊的结果。它遵循某些模式,但它不能用于根据确切的规范创建向量,并且(我相信)这不是预期的。

详情

我想这些例子不能很好地展示 pretty() 的效果。 pretty 的工作方式并不容易预测。我通常提醒自己,它的实现是为了为图表创建合理的刻度线。在图表中,您通常需要良好的第一个和最后一个值以及两者之间的相等步长。这有两个后果:

  • 在图表中,起始刻度必须小于或等于我的 min(x) 数据点,最后一个刻度必须大于等于 max(x)
  • 图表需要中间至少有一个刻度线(我觉得只有开始和结束似乎不合理)。我猜这就是 n=2 不起作用的原因。在图表中,我通常也不需要精确的刻度线。漂亮背后的想法是根据任何数据为您提供一些合理的刻度线。
  • 可能有助于理解 pretty 的第三个原则:该函数忽略您输入的任何中间步骤。它提取最小值和最大值并从那里继续。这意味着,pretty(1:5)pretty(c(1, 5)) 应该没有区别。

让我们仔细看看。这给出了一个解释它的结果:

pretty (c(105,543))
[1] 100 200 300 400 500 600

因此,我们得到了一个“平衡”向量。平衡我的意思是你得到平等的步骤和圆形的起点和终点。在我们的示例中,它将 105 向下舍入为 100,将 543 向下舍入为 600。由于端点的底数为 100,因此刻度线也有。

pretty (c(105,543), n=3)
[1] 0 200 400 600

它不能给我们 100 300 500 因为 500 n=3 而给我们 0 300 600 相反,我也不能说。但是,当您请求 n=7 时,pretty 无法返回那么多步长为 100 的中间步骤。pretty 尝试尽可能接近最小值、最大值和 n。它切换到 50 的步长。

pretty (c(105,543), n=7)
[1] 100 150 200 250 300 350 400 450 500 550

https://stackoverflow.com/questions/62491568/

相关文章:

mysql - 使用python中的线程在Mysql上同时运行多个查询

c# - SSIS - 文件存在性检查未正确控制包任务流

javascript - 如何使 React 组件更可重用?

swift - Xcode 预览不适用于通用 View

c# - 在延续中使用一个对象,确保它在你需要它之​​前不会被释放

react-native - 如何使用 RNFetchBlob.fetch 和 react-nati

.net - PubSub 上的 Http 400 推送到云运行

python - Numpy-recarray,C#结构化数据

r - 探索澳大利亚人口普查数据的最佳方式?

reactjs - 使用 enzyme 设置 redux 连接的 react 组件的状态