2014-05-20 25 views
-1

我想創建大小相同的垃圾箱直至特定數量。 示例:我想0..100在給定的範圍內創建大小相等的垃圾箱

0 10 
10 20 
20 30 
. 
. 
. 
90 100 

我嘗試使用創建大小爲10的箱子,在範圍「腰斬」,但不可能讓我的目的工作。 我用

r<-cut(100,4) 

但它返回

[1] (99.95,100] 
Levels: (99.9,99.95] (99.95,100] (100,100.05] (100.05,100.1] 
+1

請具體談談什麼是「不能讓我的目的工作」手段。 –

+0

要切割的第一個arg需要是一個矢量,而不是一個單獨的數字:'cut(0:100)''而不是'cut(100,..'這就是你需要的。 – smci

回答

2

閱讀幫助頁面:?cut

cut(100,4)試圖將單個條目向量(100)切割成4個不同的分檔。在這個調用中,cut無法知道您是否希望垃圾箱使用垃圾箱或[50,100]或[99.9,100.1]覆蓋區間[0,100],因此必須進行一些假設。

cut(1:100,breaks=10*(0:10))可能會做你想要的,甚至levels(cut(100,breaks=10*(0:10))),這取決於你想要對結果做什麼。

+0

無可否認,'cut'可以非常容易拒絕一個不是矢量的第一個參數,但是它會在給定一個整數的情況下緩慢行進並給出這種奇怪的行爲。 – smci

2

v <- seq(0, 100, 10) 
# [1] 0 10 20 30 40 50 60 70 80 90 100 

是一個載體。

您可以使用cut指定的時間間隔:

cut(v, seq(0, 100, 10), include.lowest = TRUE) 
# [1] [0,10] [0,10] (10,20] (20,30] (30,40] (40,50] (50,60] (60,70] (70,80] (80,90] (90,100] 
# Levels: [0,10] (10,20] (20,30] (30,40] (40,50] (50,60] (60,70] (70,80] (80,90] (90,100] 
1

我認爲你正在尋找:

cbind(seq(0,90,by=10),seq(10,100,10)) 
     [,1] [,2] 
[1,] 0 10 
[2,] 10 20 
[3,] 20 30 
[4,] 30 40 
[5,] 40 50 
[6,] 50 60 
[7,] 60 70 
[8,] 70 80 
[9,] 80 90 
[10,] 90 100