В R, когда у меня есть переменная фактора типа, я могу обновлять только значения в пределах указанных уровней фактора. В качестве простого примера:
LowerCourt = factor(x=c("conser", "liberal"), levels=c("conser", "liberal"))
> LowerCourt
[1] conser liberal
Levels: conser liberal
Таким образом, допустимо следующее:
LowerCourt[1] <- "liberal"
> LowerCourt
[1] liberal liberal
Levels: conser liberal
Но следующее не допускается, поскольку значение сброса находится за пределами указанных уровней:
LowerCourt[1] <- "libera"
Однако эта схема разваливается с коэффициентом, равным единице, например так:
LowerCourt = factor(x="conser", levels=c("conser", "liberal"))
LowerCourt <- "liberal"
Переназначение меняет тип так, что теперь class(LowerCourt) == "character"
, что побеждает цель использования типа фактора. Я хочу, чтобы сбросить значение в указанных уровнях и сохранить тип.
Я столкнулся с этой ситуацией со списком (скажем, input
), содержание которого является факторами (например, input$LowerCourt
,input$Petitioner
и т. Д.). Каждый раз, когда я сбрасываю значение фактора на один из допустимых уровней, значение меняется, но меняется и тип (на символ). Это нарушает какой-то другой код, который ожидает правильные типы.
Буду признателен за любые рекомендации, чтобы обойти эту проблему.