2011-11-23 274 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