“2个逗号”代表什么意思?

4

我正在查看 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])

针对未来的读者:这个 R 的例子不好。我也刚刚发现了它。iris3 实际上是一个列表,而不是数据框。 - Thorst
3个回答

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

0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接