Рассмотрим простую функцию, факторы и маркирует вектор (с неупорядоченным уровней):Factor неизвестные уровни во время выполнения, а настройки этикетки для известных уровней во время разработки
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
Есть ли способ, чтобы установить метки для известных уровней во время разработки, в то же время в том числе новые, неизвестные уровни, которые могут быть переданы в мой код во время выполнения?
Означает ли порядок полученных уровней? –
@ Уровни DavidRobinson неупорядочены, я должен был указать и отредактировать вопрос. Цените свое четкое, сжатое решение. – user1393477