2017-10-19 63 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