Рассмотрим простую функцию, которая факторизует и помечает вектор (с неупорядоченными уровнями):
my.factor <- function(data){
levels = c("d1", "d2", "d3")
labels = c("Data 1", "Data 2", "Data 3")
factored.data = factor(data, levels, labels)
factored.data
}
Это хорошо работает для известных уровней. Но предположим, что в будущем будет добавлен неизвестный уровень, и мы запустим нашу функцию:
data = c("d1", "d2", "d3", "d1", "d100")
my.factor(data)
Вывод будет:
# [1] Data 1 Data 2 Data 3 Data 1 <NA>
# Levels: Data 1 Data 2 Data 3
Однако я хочу, чтобы новое неизвестное значение было включено в качестве уровня. То есть я хочу, чтобы вывод напоминал:
# [1] Data 1 Data 2 Data 3 Data 1 d100
# Levels: Data 1 Data 2 Data 3 d100
Есть ли способ установить метки для известных уровней во время разработки, в то же время включая новые, неизвестные уровни, которые могут быть переданы моему коду во время выполнения?