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 ?

7voto

greduan Puntos 221

Llevar la sintaxis de data.table a data.frame

data.table ( DT[i, j, by] ) es tan útil y una extensión tan fiel de data.frame que debería incorporarse en este momento. (Si estamos dispuestos a considerar cambios de ruptura).

6voto

user164061 Puntos 281

Programación orientada a objetos

Las herramientas OOP no se habían incluido inicialmente en el lenguaje. Actualmente existen los objetos S3 y S4 lo que hace que haya falta de consistencia entre los diferentes códigos (un problema que es más general que sólo la POO).

6voto

ssn Puntos 472

Menos dependencia de C/C++/Fortran, también conocido como resolver el problema de las dos lenguas

Uno de los principales inconvenientes de R es que el código de rendimiento real está escrito en su mayoría en otros lenguajes (C/C++ e incluso Fortran). Esto hace que el desarrollo y el ajuste sean mucho más difíciles (ya que ahora los nuevos usuarios tienen que aprender al menos dos lenguajes, no uno).

Julia, por ejemplo, es Julia hasta la capa LLVM. Esto hace que un usuario novato de Julia domine las funcionalidades de alto y bajo nivel necesarias para desarrollar un paquete o simplemente ayudar a mejorar otros paquetes (no quiere decir que la complejidad de bajo nivel sea fácil, pero al menos ya conoces el lenguaje, hasta el punto de que no es raro que los novatos contribuyan con características al núcleo del lenguaje).

Por lo tanto, si se pudiera hacer que R puro tuviera el suficiente rendimiento, se superaría el problema de los dos lenguajes. ¿Cómo hacerlo? Esto es más difícil de decir que de hacer. Julia adoptó una postura respecto a la inferencia de tipos y al JIT (just in time, también conocido como en tiempo de ejecución), por lo que R podría tener que ceder algunas de sus características para conseguirlo. Por suerte, R (y algunos otros lenguajes) ha seguido los pasos de los lenguajes con compilación JIT, y parte de ella ya está incorporada.

6voto

tchen Puntos 1344

Como sugirió uno de los miembros de R-core -Ross Ihaka- en 2017:

  • Eliminar los entornos de primera clase
  • Eliminar la evaluación perezosa
  • Eliminar eval mismo
  • Utilizar el pase por referencia
  • Añadir escalares reales
  • Introducir declaraciones de tipo explícitas (opcionales)
  • Hacerlo compilable

De la charla Computación estadística en un entorno (más) estático

5voto

Aaron Puntos 36

Clases/estructuras de objetos estándar para resultados estadísticos comunes

Hay algunos tipos de objetos especiales que se han desarrollado en R para representar determinados tipos de resultados estadísticos. Por ejemplo, hay objetos de la clase htest que se utilizan para representar los resultados de una prueba de hipótesis, y objetos de la clase lm , glm etc., utilizados para las salidas de los modelos estadísticos. Sin embargo, hay una serie de resultados estadísticos comunes que no tienen clases/estructuras especiales desarrolladas. En consecuencia, tienden a representarse en una ad hoc manera. Sería útil que las salidas estadísticas comunes tuvieran una clase y una estructura definidas en el programa base, con elementos y método de impresión coherentes.

He aquí algunos ejemplos de resultados particulares que se beneficiarían de tener una clase/estructura desarrollada, con métodos de impresión personalizados asociados, etc. Dotar a estas y otras salidas estadísticas importantes de una clase/estructura estándar permitiría a los usuarios desarrollar, calcular e imprimir estas salidas de forma que incluyan toda la información necesaria y ofrezcan una salida de impresión fácil de usar.

  • Establece podría representarse mediante objetos apropiados como los que se encuentran actualmente en el sets paquete. Tener conjuntos como objetos en el programa sería útil para una serie de resultados estadísticos.

  • Intervalos de confianza/conjuntos podría representarse como un objeto de la clase ci que incluye un objeto de conjunto que da el intervalo/conjunto de confianza, el nivel de confianza, el nombre/descripción del parámetro o cantidad para el intervalo, y cualquier otra información necesaria.

  • Regiones de mayor densidad (HDR) podría representarse como un objeto de la clase hdr que incluye el objeto de conjunto que da el HDR, la probabilidad de cobertura y cualquier otra información necesaria.

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