Основната актуализация на езика R носи големи промени

Излезе версия 4.0.0 на езика R за статистически изчисления, с промени в синтаксиса на езика, както и функции, свързани с проверка на грешки и дълги вектори.

Надстройката е публикувана на 24 април. Изходният код за R 4.0.0 е достъпен на cran.r-project.org. Проект на GNU, R набра пара с възхода на науката за данни и машинното обучение, като в момента се класира на 10-то място в индекса на Tiobe за езикова популярност и на седмо място в индекса за популярност на езика за програмиране PyPL.

Свързано видео: Нови функции на R 4.0

Промените и функциите, въведени в R 4.0.0, включват:

  • Предлага се нов синтаксис за определяне на константи на символи _raw_, подобен на този, използван в C ++, където  r"..."може да се използва за дефиниране на литерален низ. Това улеснява писането на низове, съдържащи обратни наклонени черти или както единични, така и двойни кавички.
  • Езикът вече използва по stringAsFactors = FALSEподразбиране и по този начин по подразбиране вече не преобразува низове във фактори при повиквания към data.frame()и read.table(). Много пакети разчитат на предишното поведение и ще се нуждаят от актуализиране.
  • Общата функция на S3 plot()сега е в пакета, а не в графиката на пакета; разумно е да има методи, които не използват графичния пакет. Понастоящем генеричното се реекспортира от графичното пространство на имена, за да позволи на пакетите, които го импортират от там, да продължат да работят, но това може да се промени в бъдеще. Пакетите, за които се дефинира S4 графика, plot()трябва да бъдат преинсталирани и кодът на пакета, използващ такива генерични продукти от други пакети, трябва да гарантира, че те са импортирани, вместо да разчитат на търсене по пътя за търсене.
  • S3 методите за масив от класове сега се изпращат за матрични обекти.
  • Сега броенето на референции се използва вместо механизма NAMED за определяне кога обектите могат безопасно да се мутират в основен C код. Това намалява необходимостта от копиране в някои случаи и би трябвало да позволи бъдещи оптимизации. Също така се очаква да спомогне за по-лесно поддържане на вътрешния код.
  • assertError()и assertWarning()в пакет инструменти за сега може да се провери за спецификацията в  грешка или предупреждение класове чрез новата опция Вторият аргумент classes.
  • DF2formula(), помощната програма за метода на рамката за данни formula(), сега работи без анализиране и изрична оценка.
  • Дългите вектори сега се поддържат като seqаргумент на for()цикъл.
  • matrix() сега преобразува символни колони във фактори и фактори в цели числа.
  • skeleton() сега изрично изброява всички експортирани файлове във файла NAMESPACE.
  • Вътрешното изпълнение на мрежовите единици се промени. На само видимите ефекти на ниво потребител трябва да бъде малко по-различен формат печат за някои единици, по-висока производителност на единица операции, както и две нови функции, unitType()и unit.psum().
  • methods (..)Сега отпечатването използва нов format()метод.
  • Пакетите трябва да бъдат преинсталирани под новата версия на R.
  • Тази версия на R е изградена срещу библиотеката PCRE2 за Perl-подобни регулярни изрази, ако има такива.
  • Началото на поддръжката за C ++ 20.
  • Времето, необходимо за стартиране на хомогенен PSOCK клъстер на localhost с много възли, е значително намалено.
  • Съществуват и редица откази. Например, make macro F77_VISIBILITY е премахнат и заменен с F_VISIBILITY; оттеглена поддръжка за определяне на C ++ 98 за инсталиране на пакети; и много несъществуващи функции са премахнати от пакетите за база и методи.