2011-11-23 273 views
4

我在看一個例子爲knnflex包和他們建立了一個訓練和測試組使用下列內容:R 2個逗號是什麼意思?

train <- rbind(iris3[1:25,,1], iris3[1:25,,2], iris3[1:25,,3]) 
test <- rbind(iris3[26:50,,1], iris3[26:50,,2], iris3[26:50,,3]) 

我的問題是,這如何不同於:

train <- rbind(iris3[1:25,1], iris3[1:25,2], iris3[1:25,3]) 
test <- rbind(iris3[26:50,1], iris3[26:50,2], iris3[26:50,3]) 
+0

對於未來人員:R中的示例很差。我也只是勉強穿過它。 iris3實際上是一個列表,而不是數據框。 – NoThanks

回答

4

兩個逗號意味着有兩個以上的尺寸和您選擇的所有項目的維度,可能有被指定在兩個逗號之間。例如,想象一個立方體,而不是一個正方形,其中包含所有數據。您可以選擇行,高度和深度。如果選擇[row,depth],那麼您將在該行和深度的立方體中選擇整個列。原則是一樣的更大的尺寸,但很難形容。

4

何不你試試嗎?

> train <- rbind(iris3[1:25,,1], iris3[1:25,,2], iris3[1:25,,3]) 
> test <- rbind(iris3[26:50,,1], iris3[26:50,,2], iris3[26:50,,3]) 
> train <- rbind(iris3[1:25,1], iris3[1:25,2], iris3[1:25,3]) 
Error in iris3[1:25, 1] : incorrect number of dimensions 
> test <- rbind(iris3[26:50,1], iris3[26:50,2], iris3[26:50,3]) 
Error in iris3[26:50, 1] : incorrect number of dimensions 

更一般地,留下一個指標未指定選擇所有條目對於指數:

> mtx<-matrix(c(1,2,3,4),nrow=2) 
> mtx 
    [,1] [,2] 
[1,] 1 3 
[2,] 2 4 
> mtx[1,] 
[1] 1 3 
> mtx[,1] 
[1] 1 2