32 votos

Si hoy se reprogramara R desde cero, ¿qué cambios serían más útiles para la comunidad estadística?

Muchas personas de la comunidad estadística y de otros ámbitos académicos utilizan R como lenguaje principal para el análisis de datos y el cálculo estadístico. Es un lenguaje maravilloso y versátil que se ha hecho muy popular tanto en el ámbito académico como en el industrial. El lenguaje tiene una interesante historia que evolucionó como una mejora del S producido por los Laboratorios Bell (véase, por ejemplo, el Cámaras 2020 ). Aunque es un lenguaje versátil, la versión base de R tiene algunos inconvenientes bien conocidos, como las dificultades para tratar los "grandes datos", la falta de etiquetas en las variables, etc. Esta funcionalidad básica suele complementarse con paquetes populares, pero los nuevos usuarios pueden tener dificultades para aprender los métodos necesarios.

Desde R se desarrolló esencialmente como una reprogramación actualizada de un lenguaje anterior, es natural preguntarse si alguna vez habrá un esfuerzo por crear un nuevo lenguaje que busque basarse en R . En el caso de que un proyecto de este tipo llegara a producirse, qué tipo de cambios serían más útiles para la comunidad estadística ?

25voto

icelava Puntos 548

Más coherencia en los nombres de los parámetros. Por ejemplo:

  • matrix() tiene un parámetro dimnames .
  • write.table() tiene parámetros row.names y col.names (con puntos, y sin dimnames parámetro).
  • Hay funciones rownames() y colnames() sin puntos.

Sí, este es un pequeño detalle. Pero llevo casi 20 años utilizando R a diario y todavía tengo que mirar ?matrix cada vez que porque traté de establecer row.names y me sorprende que no funcione.

18voto

Andreas Dzemski Puntos 116

Mensajes de error útiles

En comparación con otros lenguajes (por ejemplo, Python), es muy difícil localizar los fallos basándose en los mensajes de error. A menudo, los mensajes de error ni siquiera informan sobre qué parte del código causa el fallo.

Tipificación estática opcional

Una manera fácil de asegurarse de que i es un número (como se supone que es) y no un marco de datos.

Alguna forma (tal vez opcional) de deshacerse de los errores causados por problemas de alcance

Por ejemplo, quiero ser capaz de decirle a una función que debe trabajar sólo con sus argumentos y bajo ninguna circunstancia tratar de encontrar variables en otros entornos (te estoy mirando el entorno global).

Soporte nativo de extensiones C++

Rcpp es una forma maravillosa de extender R para obtener ganancias de rendimiento, pero sufre el problema de que nativamente R sólo soporta C (no C++). Esto limita severamente lo que se puede hacer con Rcpp y hace que extender R a través de nuevos paquetes sea más difícil de lo que tiene que ser.

Por supuesto, abordar cualquiera de estas preocupaciones requeriría un rediseño completo del lenguaje, por lo que R ya no sería realmente R.

12voto

user164061 Puntos 281

Ejecución autónoma

Para ejecutar el código es necesario tener instalado R. Esto es similar a Python, que sin embargo tiene algunos programas que pueden convertir Python en ejecutables.

Esto hace más difícil compartir programas con usuarios que no tienen R instalado.

11voto

Half-Shot Puntos 1

Entornos reproducibles incorporados

Si R se diseñara desde cero, sería estupendo tener una forma incorporada de utilizar paquetes de forma reproducible y tener instaladas varias versiones del mismo paquete, y agrupar la información sobre los paquetes con los que se ejecutó el código en un único archivo que pudiera utilizarse para volver a ejecutar este código con paquetes idénticos. Idealmente sin requerir que se instale el mismo paquete varias veces.

Hay un montón de paquetes para crear entornos R reproducibles, lo que provoca la fragmentación, y los usuarios tienen que utilizar uno para que su código sea adecuadamente reproducible.

9voto

Aaron Puntos 36

Conservar/traducir lo existente R paquetes

Probablemente la mayor ventaja actual de R sobre otros programas de cálculo estadístico es que cuenta con un enorme repositorio de paquetes bien desarrollados que realizan una clase de tareas estadísticas más amplia que la disponible en otros programas. En el caso de que se intentara reprogramar una nueva versión desde cero, sería importante preservar todo lo posible como código válido que fuera compatible con un nuevo programa. En consecuencia, en el caso de que hubiera algún cambio en el programa base que dejara obsoleto el código posterior, sería útil disponer de un método paralelo de "traducción" del código al nuevo programa.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X