R 4.0.0 и строки AsFactors - PullRequest
       0

R 4.0.0 и строки AsFactors

2 голосов
/ 01 мая 2020

Я поддерживаю приложение на основе R, которое использует функции типа read.table (), различные функции data.frame () и lm () / glm (). Начиная с версии 4.0.0, R по умолчанию обрабатывает строки в фреймах данных как строки, а не как факторы. Я обдумываю, как с этим справиться, чтобы избежать появления проблем.

Я искал информацию о функциях, на которые может повлиять изменение, но не нашел окончательных списков или утилит, которые могли бы сканировать пакет для потенциальных проблем. Я пропустил что-нибудь, что могло бы помочь?

С другой стороны, я нашел эссе

Курт Хорник: stringsAsFactors

https://developer.r-project.org/Blog/public/2020/02/16/stringsasfactors/index.html

, в котором, помимо прочего, говорится:

Следовательно, на совещаниях R Core в Тулузе в 2019 году было решено перейти к использованию stringsAsFactors = FALSE по умолчанию , в идеале начиная с версии 4.0.0.

В конечном итоге опция stringsAsFactors исчезнет. В настоящее время стало возможным последовательно устанавливать этот параметр (и, следовательно, значение по умолчанию для stringsAsFactors) с помощью внутренней переменной среды _R_OPTIONS_STRINGS_AS_FACTORS_: ​​базовый и рекомендуемый пакеты уже были изменены в прошлом году для правильной работы независимо от настроек по умолчанию, а некоторые из обычных проверок CRAN скоро переключится на использование _R_OPTIONS_STRINGS_AS_FACTORS_ = false.

Если я правильно понимаю, stringsAsFactors больше не будет параметром в data.frame () и read.table () когда-нибудь в будущее. И похоже, что теперь мы можем передавать кадры данных с категориальными переменными, представленными строками, в lm (), glm () и т. Д. c, и такие функции будут корректно обрабатывать их автоматически. Поэтому я могу удалить все параметры stringsAsFactors из вызовов функций, и все эти функции будут работать правильно? Это правильно? (Это кажется слишком простым.)

Я благодарен за совет. Спасибо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...