2011-09-07 35 views
7

Estoy portando parte de un programa (no lo suficiente para compilar y ejecutar) de R a C++. No estoy familiarizado con R. He hecho bien el uso de las referencias en línea, pero estaba confundido por la línea siguiente:En R, ¿qué hace un índice negativo?

cnt2.2<-cnt2[,-1] 

supongo que seguirán:

  1. cnt2 es una matriz de 2 dimensiones
  2. cnt2.2 es una nueva variable que se declara con un punto '.' usado de la misma manera que un carácter alfabético.
  3. <- es una tarea.
  4. [,-1] accede a parte de la matriz. Pensé que [,5] significaba todas las filas, quinta columna solamente. Si esto es correcto, no tengo idea a qué se refiere -1.

Respuesta

8

Los índices negativos especifican cayendo (en vez de retener) elementos particulares ... así x[,-1] especifica que abandonan la primera columna (filas son la primera dimensión, antes de la coma, y ​​las columnas son la segunda dimensión, después de la coma). De ?"[" (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. 
4

1) CNT2 es una matriz de 2 dimensiones

A partir del código que ya ha proporcionado es de hecho una estructura de 2 dimensiones de algún tipo (posiblemente una matriz).

2) cnt2.2 es una nueva variable que se declara con un punto '.' usado de la misma manera que un carácter alfabético.

Correcto.

3) < - es una tarea.

Correcto.

4) [, -1] accede a parte de la matriz. Pensé que [, 5] significaba todas las filas, solo la quinta columna. Si esto es correcto, no tengo idea a qué se refiere -1.

[,-1] selecciona todas las columnas excepto en la columna 1. Tenga en cuenta que, a diferencia de C++, los índices en R comienzan desde uno en lugar de cero.

+0

+1 para comentar sobre la indexación desde 1 (aunque espero que el OP ya lo haya descifrado) –