Ответ 1
Это описано в разделе 2.7 руководства: http://cran.r-project.org/doc/manuals/R-intro.html#Index-vectors
Это отрицательный индекс в объект cnt2
, определяющий все строки и все столбцы, кроме первого столбца.
Я переношу часть программы (недостаточно для компиляции и запуска) из R в С++. Я не знаком с Р. Я сделал все правильно, используя ссылки онлайн, но был озадачен следующей строкой:
cnt2.2<-cnt2[,-1]
Я предполагаю:
cnt2
является двумерной матрицейcnt2.2
- это новая переменная, объявленная с периодом '.' используется так же, как и буквенный символ.<-
- это назначение.[,-1]
обращается к части массива. Я думал, что [,5]
означает все строки, только 5-й столбец. Если это правильно, я не знаю, к чему относится -1.Это описано в разделе 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):
Только для ‘[-indexing:‘ i, ‘j,‘... могут быть логическими векторы, указывающие элементы/фрагменты для выбора. Такие векторы перерабатываются при необходимости, чтобы соответствовать соответствующей степени. ‘I,‘ j, ‘... также могут быть отрицательными целыми числами, указывая элементы/кусочки, чтобы оставить вне выбора.
1) cnt2 является двумерной матрицей
Из кода, который вы указали, действительно является 2-мерной структурой какого-то типа (вполне возможно, матрицы).
2) cnt2.2 - это новая переменная, объявленная с периодом '.' используется так же, как и буквенный символ.
Правильно.
3) < - задание.
Правильно.
4) [, -1] обращается к части массива. Я думал, что [, 5] означает все строки, только 5-й столбец. Если это правильно, я не знаю, что означает -1.
[,-1]
выбирает все столбцы, кроме столбца 1. Обратите внимание, что, в отличие от С++, индексы в R начинаются с одного, а не с нуля.