L'aggiornamento principale del linguaggio R porta grandi cambiamenti

È stata rilasciata la versione 4.0.0 del linguaggio R per il calcolo statistico, con modifiche alla sintassi del linguaggio e funzionalità relative al controllo degli errori e ai vettori lunghi.

L'aggiornamento è stato pubblicato il 24 aprile. Il codice sorgente per R 4.0.0 è accessibile su cran.r-project.org. Un progetto GNU, R ha raccolto vapore con l'ascesa della scienza dei dati e dell'apprendimento automatico, attualmente al 10 ° posto nell'indice Tiobe di popolarità del linguaggio e settimo nell'indice PyPL di popolarità del linguaggio di programmazione.

Video correlato: Nuove funzionalità della R 4.0

Le modifiche e le funzionalità introdotte nella R 4.0.0 includono:

  • Viene offerta una nuova sintassi per specificare le costanti di caratteri _raw_ simili a quella utilizzata in C ++, dove  r"..."può essere utilizzata per definire una stringa letterale. Ciò semplifica la scrittura di stringhe contenenti barre rovesciate o virgolette singole e doppie.
  • La lingua ora utilizza un stringAsFactors = FALSEvalore predefinito e quindi per impostazione predefinita non converte più le stringhe in fattori nelle chiamate a data.frame()e read.table(). Molti pacchetti si basavano sul comportamento precedente e dovranno essere aggiornati.
  • La funzione generica S3 plot()ora è nella base del pacchetto piuttosto che nella grafica del pacchetto; è ragionevole disporre di metodi che non utilizzano il pacchetto di grafica. Il generico attualmente viene riesportato dallo spazio dei nomi grafico per consentire ai pacchetti di importarlo da lì di continuare a funzionare, ma questo potrebbe cambiare in futuro. I pacchetti che definiscono la grafica S4 per plot()devono essere reinstallati e il codice del pacchetto che utilizza tali generici da altri pacchetti deve garantire che vengano importati piuttosto che fare affidamento sulla ricerca nel percorso di ricerca.
  • I metodi S3 per l'array di classi ora vengono inviati per gli oggetti matrice.
  • Il conteggio dei riferimenti ora viene utilizzato al posto del meccanismo NAMED per determinare quando gli oggetti possono essere mutati in modo sicuro nel codice C di base. Ciò riduce la necessità di copiare in alcuni casi e dovrebbe consentire future ottimizzazioni. Si prevede inoltre che contribuisca a semplificare la manutenzione del codice interno.
  • assertError()e assertWarning()in strumenti del pacchetto ora possibile verificare la presenza di specifi classi di errore o di avvertimento tramite il nuovo secondo argomento opzionale classes.
  • DF2formula(), l'utilità per il metodo del frame di dati formula(), ora funziona senza analisi e valutazione esplicita.
  • I vettori lunghi ora sono supportati come seqargomento di un for()ciclo.
  • matrix() ora converte le colonne di caratteri in fattori e i fattori in numeri interi.
  • skeleton() ora elenca esplicitamente tutte le esportazioni nel file NAMESPACE.
  • L'implementazione interna delle unità di rete è cambiata. Gli unici effetti visibili a livello utente dovrebbero essere un formato di stampa leggermente diverso per alcune unità, prestazioni più veloci per le operazioni dell'unità e due nuove funzioni unitType()e unit.psum().
  • La stampa methods (..)ora utilizza un nuovo format()metodo.
  • I pacchetti devono essere reinstallati con la nuova versione di R.
  • Questa versione di R è costruita sulla libreria PCRE2 per espressioni regolari simili a Perl, se disponibili.
  • Gli inizi del supporto per C ++ 20.
  • Il tempo necessario per avviare un cluster PSOCK omogeneo su localhost con molti nodi è stato notevolmente ridotto.
  • Ci sono anche una serie di deprecazioni. Ad esempio, la macro make F77_VISIBILITY è stata rimossa e sostituita con F_VISIBILITY; il supporto deprecato per specificare C ++ 98 per l'installazione dei pacchetti è stato rimosso; e molte funzioni defunte sono state rimosse dai pacchetti base e metodi.