La verdad es una nota ñoña sólo para mi, aunque apelo a cualquiera que sepa algo de esto a que comente el tema en particular.
En el entorno de programa R (www.r-project.org), cuando se desea crear un nuevo objeto con base en un data.frame, por ejemplo, para dejar sólo columnas de variables cuantitativas, puedo usar dos procedimientos: cbind (ligar columnas) o bien segregar las columnas a través de la selección de un rango de columnas. En código, esto sería:
Supongan que tengo un data.frame con la siguiente estructura:
id | sexo | var1 | var2 | var3 |
1 | masculino | 3 | 5 | 7 |
2 | masculino | 4 | 4 | 6 |
3 | masculino | 3 | 5 | 7 |
4 | masculino | 6 | 5 | 7 |
5 | masculino | 5 | 6 | 7 |
6 | femenino | 4 | 5 | 6 |
7 | femenino | 3 | 4 | 7 |
8 | femenino | 3 | 3 | 8 |
9 | femenino | 2 | 4 | 7 |
10 | femenino | 6 | 5 | 6 |
La intención es quedarse sólo con las variables cuantitativas, las tres últimas. Procedemos del siguiente modo:
nuevo.objeto <- cbind(var1, var2, var3)
Luego, nuestro objeto se verá así:
var1 | var2 | var3 |
3 | 5 | 7 |
4 | 4 | 6 |
3 | 5 | 7 |
6 | 5 | 7 |
5 | 6 | 7 |
4 | 5 | 6 |
3 | 4 | 7 |
3 | 3 | 8 |
2 | 4 | 7 |
6 | 5 | 6 |
El problema es que si son 100 variables, escribirlas todas resulta aburrido y una pérdida de tiempo. Otra forma de hacerlo es:
nuevo.objeto <- data.frame[,c(3:5)] # donde "data.frame" corresponde al objeto tabla inicial # y la instrucción c(3:5) le dice al programa quedarse con las # 3 últimas variables.
El problema es que el resultado obtenido es:
row.names | var1 | var2 | var3 |
1 | 3 | 5 | 7 |
2 | 4 | 4 | 6 |
3 | 3 | 5 | 7 |
4 | 6 | 5 | 7 |
5 | 5 | 6 | 7 |
6 | 4 | 5 | 6 |
7 | 3 | 4 | 7 |
8 | 3 | 3 | 8 |
9 | 2 | 4 | 7 |
10 | 6 | 5 | 6 |
Como se observa, aparece una nueva columna, que «etiqueta» las filas. Esto no implica ningún problema si la base está inalterada, pero si luego extraemos casos, la lista no se actualiza y me muestra el orden de acuerdo a esta nueva columna. Por ejemplo, si borro el caso 9, la lista no se renumera y me seguirá mostrando el caso que estaba en la posición 10 (y ahora está en la posición 9) como un «10», es decir, no podré saber con cuántos casos cuento realmente.
El mayor y más concreto problema que he enfrentado es la eliminación de datos atípicos, si me guío por un base con la adición de row.names, estoy borrando casos de modo erróneo, porque en los procedimientos de detección de atípicos me muestra el caso «etiquetado» y no en su posición real. Si elimino casos lo voy a estar haciendo por su posición real, pero el programa me mostrará datos con su etiqueta antigua y no por la posición que ocupan actualmente.
¿Sugerencias?
Haslo con excel y luego lo pasas a R.