В R, что делает отрицательный индекс?

Я портирую часть программы (недостаточно для компиляции и запуска) с R на C++. Я не знаком с R. Я сделал хорошо, используя ссылки в интернете, но был в тупике следующей строкой:

cnt2.2<-cnt2[,-1]

Я полагаю:

  1. cnt2 является 2-мерной матрицей
  2. cnt2.2 - новая переменная, объявленная с периодом'.- используется так же, как алфавитный знак.
  3. <- - это назначение.
  4. [,-1] доступ к части массива. Я думал [,5] означало все строки, только 5-й столбец. Если это правильно, я понятия не имею, что означает -1.

3 ответов


об этом говорится в разделе 2.7 руководства:http://cran.r-project.org/doc/manuals/R-intro.html#Index-vectors

это отрицательный индекс в cnt2 объект, указывающий все строки и все столбцы, кроме первого столбца.


отрицательные индексы указывают на удаление (а не сохранение) определенных элементов ... так что 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.

1) cnt2 является 2-мерной матрицей

из кода, который вы предоставили, это действительно 2-мерная структура (вполне возможно, матрица).

2) cnt2.2-новая переменная, объявленная с периодом '.- используется так же, как алфавитный знак.

правильно.

3)

правильно.

4) [,-1] обращается часть массива. Я думал, что [, 5] означает все строки, только 5-й столбец. Если это правильно, я понятия не имею, что означает -1.

[,-1] выбирает все столбцы кроме столбца 1. Обратите внимание, что, в отличие от C++, индексы в R начинаются с единицы, а не с нуля.