R 2个逗号是什么意思?

时间:2011-11-23 21:55:20

标签: r

我正在查看knnflex包的示例,他们使用以下方法设置了培训和测试集:

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])

3 个答案:

答案 0 :(得分: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

答案 1 :(得分:4)

两个逗号表示有两个以上的维度,并且您选择了维度中可以在两个逗号之间指定的所有项目。例如,想象一个立方体而不是正方形,其中包含所有数据。您可以选择行,高度和深度。如果选择[行,深度],则将在该行和深度处选择多维数据集中的整个列。这个原则在更大的维度上是相同的,但更难描述。

答案 2 :(得分:0)

虹膜和虹膜3之间的差异,虹膜3是一个三维矩阵,包含与虹膜相同的数据。但它存储的方式不同。您可以将虹膜视为二维矩阵 检查以下链接 https://stat.ethz.ch/R-manual/R-devel/library/datasets/html/iris.html