В R, что делает отрицательный индекс?
Я портирую часть программы (недостаточно для компиляции и запуска) с R на C++. Я не знаком с R. Я сделал хорошо, используя ссылки в интернете, но был в тупике следующей строкой:
cnt2.2<-cnt2[,-1]
Я полагаю:
-
cnt2
является 2-мерной матрицей -
cnt2.2
- новая переменная, объявленная с периодом'.- используется так же, как алфавитный знак. -
<-
- это назначение. -
[,-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 начинаются с единицы, а не с нуля.