AD

¿Ya dominas lo básico? Un curso estructurado de R es la vía rápida para dar el salto.

Ver cursos de R en Udemy

Enlace de afiliado. No te cuesta nada extra.

📊Lecciones de R
Lección 40 / 68

Copia superficial y copia profunda

En esta lección verás en qué se diferencia R de casi todos los lenguajes al copiar.

En R, asignar un vector o una lista a otra variable crea una copia independiente. Modificar una no afecta a la otra. Los entornos son la excepción: se comparten por referencia.

El código de ejemplo lo demuestra con un entorno, donde el cambio sí se ve desde ambos lados.

Esta semántica de copia al modificar es una de las decisiones de diseño más características de R, y viene de su público: en análisis, que una función te cambie los datos por debajo sería desastroso. A cambio se paga en memoria y en velocidad, y por eso R optimiza copiando solo cuando algo se modifica, no en la asignación.

Los entornos rompen esa regla a propósito, y por eso se usan para cachés y contadores, donde justamente quieres compartir el estado. Lo mismo hacen las clases R5 (Reference Classes) y el paquete R6.

Consecuencia práctica: si te encuentras con que un objeto cambia sin que nadie parezca tocarlo, casi seguro que hay un entorno de por medio.

📖 Código de referencia
✍️ Tu código
Escribe tu código y pulsa «Ejecutar»

🧪 Este sitio no puede compilar ni ejecutar R directamente, así que comprueba al instante si lo que escribiste coincide con el código de referencia (la corrección ocurre por completo en tu navegador; no se envía nada a ningún servidor).

🔗 El mismo tema en otros lenguajes

Mira cómo se escribe lo mismo en otro lenguaje.

Espacio publicitario (banner)
Espacio publicitario (en el artículo)