Cómo reconocer y corregir errores en la lista de r

Aunque las listas ayudan con el mantenimiento de los datos juntos y vienen en muy práctico cuando se está procesando múltiples conjuntos de datos en R, pueden causar algunos problemas también.

En primer lugar, usted puede olvidarse fácilmente de que alguna función devuelve una lista en lugar de un vector. Por ejemplo, muchos programadores se olvidan de que strsplit () devuelve una lista en lugar de un vector. Por lo tanto, si desea que la segunda palabra de una frase, el siguiente código no devuelve un error, pero no le da la respuesta correcta, ya sea:

> Strsplit ('esto es una pena', '') [2] [[1]] NULL

En este ejemplo, strsplit () devuelve una lista con un elemento, el vector con las palabras de la frase:

> Strsplit ('esto es una pena', '') [[1]] [1] "esto" "es" "a" "sentencia"

Para acceder a este vector, primero hay que seleccionar el elemento deseado de la lista. Sólo entonces se puede buscar el segundo valor utilizando los índices del vector, así:

> Strsplit ('esto es una pena', '') [[1]] [2] [1] "es"

Incluso el propio mecanismo de indexación puede causar errores de este tipo. Por ejemplo, usted tiene algunos nombres de clientes y desea agregar un punto entre sus nombres y apellidos. Así, en primer lugar, que los divide así:

> Cliente lt; - c ('Johan Delong', 'Marie Petit')> namesplit lt; - strsplit (cliente, '')

Usted quiere pegar el segundo nombre, junto con un punto en el medio, por lo que necesita para seleccionar el segundo elemento de la lista. Si utiliza soportes individuales, se obtiene lo siguiente:

> Pegar (namesplit [2], colapso = '.') [1] "c (" Marie ", " Petit ")"

Eso no es lo que usted desea en absoluto. Recuerde que usted puede utilizar ambos soportes individuales y soportes dobles para seleccionar elementos de una lista, pero cuando se utiliza soportes individuales, siempre obtendrá una lista devuelta. Por lo tanto, para obtener el resultado correcto, necesita soportes dobles, como este:

> Pegar (namesplit [[2]], el colapso = '.') [1] "Marie.Petit"

Observe que R no dio una señal - ni siquiera una advertencia - que algo andaba mal. Por lo tanto, si observa las listas en las que no se pueden esperar de ellos (o no se dan cuenta que cuando usted hace esperar), ver sus soportes.




» » » » Cómo reconocer y corregir errores en la lista de r