在R中,负指数有什么作用?

时间:2011-09-07 15:42:31

标签: r syntax indexing matrix-indexing

我正在从R到C ++移植程序的一部分(不足以编译和运行)。我对R不熟悉。我在网上使用这些参考文章已经做得很好,但被以下几行难住了:

cnt2.2<-cnt2[,-1]

我在猜测:

  1. cnt2是一个二维矩阵
  2. cnt2.2是一个声明为句点'。'的新变量。使用与字母字符相同的方式。
  3. <-是一项任务。
  4. [,-1]访问数组的一部分。我认为[,5]表示所有行,仅限第5列。如果这是正确的,我不知道-1指的是什么。

3 个答案:

答案 0 :(得分:16)

本手册第2.7节对此进行了介绍:http://cran.r-project.org/doc/manuals/R-intro.html#Index-vectors

它是cnt2对象的负索引,指定除第一列之外的所有行和所有列。

答案 1 :(得分:13)

否定索引指定删除(而不是保留)特定元素...因此x[,-1]指定删除第一列(行是第一个维度,在逗号之前,列是第二个维度,在逗号之后) 。来自?"["http://stat.ethz.ch/R-manual/R-devel/library/base/html/Extract.html):

For ‘[’-indexing only: ‘i’, ‘j’, ‘...’ can be logical
          vectors, indicating elements/slices to select.  Such vectors
          are recycled if necessary to match the corresponding extent.
          ‘i’, ‘j’, ‘...’ can also be negative integers, indicating
          elements/slices to leave out of the selection.

答案 2 :(得分:5)

  

1)cnt2是二维矩阵

从你提供的代码来看,它确实是某种二维结构(很可能是一个矩阵)。

  

2)cnt2.2是一个用句点'。'声明的新变量。使用与字母字符相同的方式。

正确。

  

3)&lt; - 是一项任务。

正确。

  

4)[, - 1]访问数组的一部分。我认为[,5]意味着所有行,仅限第5列。如果这是正确的,我不知道-1指的是什么。

[,-1]选择除第1列之外的所有列。请注意,与C ++不同,R中的索引从1开始而不是从零开始。