首页 > 解决方案 > 如何理解r数据框中的方括号和逗号

问题描述

我正在关注一个纸质示例,其中白血病.train 数据框有 38 个 obs 和 7130 个变量。我对语法的理解是 y1 将是与列 [2] 相对应的白血病.train 的一部分。当我打印 y1 时,我获得了与第 7130 列相对应的值。为什么?我不明白什么...

y1 <- leukemia.train[, dim(leukemia.train)[2]] 
> y1
[1] 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1

标签: r

解决方案


dim(x)是一个向量,其维度为x - 即其行数和列数(对于二维矩阵/data.frame)。

在 的情况下leukemia.train,维度向量将如下所示:

[1] 38 7130

接下来,您将获取它的第二个元素:dim(leukemia.train)[2],并使用它来对整个矩阵进行子集化。

因此,您的陈述等同于:

y1 <- leukemia.train[, 7130] 

另一个小而重要的细节:分配后,y1不会“成为”原始矩阵的一部分。相反,它是您要设置子集的矩阵部分的副本(即它的第 7130 列)。


推荐阅读