2017-10-19 30 views
0

我试图用seq()来定义我的断点。下面的虚拟示例。Seq()按分钟数量生成数字(R)

ggplot(data, aes(x=cat, y=dog) + 
    scale_y_continuous(breaks=seq(-0.3, 0.3, by=0.1)) 

出于某种原因,seq()是给我输出的数字,通过微量关闭。这种行为发生在我的绘图设备内外。如下所示,生成负数似乎是个问题。它可以产生它们,但这就是问题出现的地方。

seq(0.3, 0.9, by=0.1) # test with positives 
seq(-0.3, 0.3, by = 0.1) # test with negatives 
format(seq(-0.3, 0.3, by = 0.1), scientific = F) # show full number 

enter image description here

我阅读文档,但没有找到任何谈论底片所以我不知道如何解决它。有什么我做错了或排除?是否有解决方法或其他功能我应该使用?

编辑 标记为重复但重复未明确提供此解决方案。这里有几个:

# i went with this solution as given in comments to keep it all contained within seq() 
seq(-0.3, 0.3, length.out=7) 

# from the answers 
seq(-3, 3, by=1)/10 

# didn't work for my case but should work as a general rule 
round(x, digits=n) # x would be the seq(-0.3, 0.3, by = 0.1) and n=1 in my case) 
+1

由于这个问题被标记为重复我不能提交此作为一个答案。 来自?seq: '指定 - 从相反的符号开始是错误。' 至于解决方法,它似乎很好,如果你做 seq(从= -0.3,到= 0.3,length.out = 7) – jpshanno

+0

@jpshanno 0.3 - (-0.3)= 0.6这与0.1的符号相同。不,这只是常见的浮点数FAQ。 – Roland

+1

@罗兰德,我不认为你回答这个问题的问题。这个问题是询问如何让seq()在给出预期的输出时出现相反的符号,而不是为什么这些数字不相等。 – jpshanno

回答

1

一种解决办法是,你可以尝试序列(-3,3,1)/ 10

+0

您的解决方案有效。我选择了@ jpshanno's,因为它保留在seq中,但是因为它已经被标记为重复的,我不能给他支票,所以它都是你的。 – seeellayewhy