¿Esta ruta trata de las estructuras de datos de R, como los vectores y los data frames?
No principalmente. Los tipos de datos propios de R son los vectores atómicos, las listas (que se anidan), las matrices, los data frames y los factores; son lo que cubren la mayoría de las guías de estructuras de datos en R, y el curso de R de Coddy los enseña. Esta ruta usa el sentido que tiene el término en informática: pilas, colas, listas enlazadas, tablas hash, heaps, tries, árboles y grafos, construidos en R y usados después para ordenamiento, recursión y algoritmos de grafos.
¿Es R bueno para estructuras de datos y algoritmos?
Funciona, con algo de fricción. R está hecho para estadística vectorizada, no para estructuras de nodos enlazados, así que una lista enlazada o un árbol exigen más reflexión que en Python, y las entrevistas de programación rara vez se hacen en R. Para un analista, esa fricción es precisamente el valor: saber que hacer crecer un vector en un bucle es cuadrático, o que un entorno es un mapa hash, es lo que hace que el código de R escale a datos reales.
¿Cómo se crea un mapa hash en R?
Con un entorno: h <- new.env(), y después h[[key]] <- value para guardar y h[[key]] para leer, que devuelve NULL si la clave no existe. Los entornos usan hash, tienen cadenas como claves y semántica de referencia, así que una función que modifica uno lo modifica también para quien la llamó, a diferencia de un vector o una lista. Una lista con nombres parece un diccionario pero se comporta como un valor: modifícala dentro de una función y la copia de quien la llamó queda intacta.
¿Falla la recursión profunda en R?
Puede fallar. Por defecto, options(expressions = 5000) limita cuánto puede anidarse la evaluación, y una recursión profunda, como una búsqueda en profundidad a lo largo de una cadena larga, se detiene con un error evaluation nested too deeply. Subir la opción da algo de margen; la solución fiable es una pila explícita dentro de un bucle, la estructura que construyes en el paso uno.
¿Qué cursos de esta ruta no se enseñan en R?
Tres: la programación dinámica y la serie de entrevistas en Python, que se enseñan en Python, y la manipulación de bits, que se enseña en C++. Aparecen después de los pasos, cada uno con un enlace que lo abre en su propio lenguaje. La programación dinámica se traduce directamente, ya que una tabla de memoización en R es un vector reservado de antemano, y los &, |, ^ y << de C++ pasan a ser las funciones bitwAnd, bitwOr, bitwXor y bitwShiftL.
¿Necesito saber R antes de empezar esta ruta?
Como mínimo, vectores, listas, funciones, bucles y la indexación desde 1. Si son nuevos para ti, el curso de R de Coddy te lleva hasta ahí primero, gratis, y esta ruta continúa donde él termina.