我试图理解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个例子。
任何帮助将不胜感激!!提前感谢。
1条答案
按热度按时间de90aj5v1#
摘要:
pretty
返回一些模糊的结果。它遵循某些模式,但不能用于根据确切的规范创建向量,并且(我相信)这不是故意的。详情
我想这些例子并不适合展示
pretty()
的效果。而且pretty
的工作方式也不容易预测。我通常会提醒自己,它是为了为图表创建合理的刻度线而实现的。在图表中,你通常需要一个好的第一个和最后一个值,以及两者之间的相等步长。这有两个后果:min(x)
数据点,最后一个刻度必须大于或等于max(x)
。n=2
不起作用。在图表中,我通常也不需要精确的刻度线。漂亮背后的想法是根据任何数据给你给予一些合理的刻度线。pretty
:该函数忽略您输入的任何中间步骤。它提取最小值和最大值并从那里继续。这意味着pretty(1:5)
或pretty(c(1, 5))
不应该有区别。让我们仔细看看。这给出了一个解释它的结果:
字符串
因此,我们得到一个“平衡”向量。平衡的意思是你得到相等的步长和四舍五入的起点和终点。在我们的例子中,它将105向下舍入为100,将543向上舍入为600。由于终点的基数为100,因此刻度线也是如此。
型
它不能给予我们
100 300 500
,因为500 < 543。为什么它不保留n=3
而给予我们0 300 600
,我也不能说。但是当你请求n=7
时,它不能返回那么多的中间步骤,步骤为100。pretty
试图尽可能接近min,max和n。它切换到步长为50。型