Вы имеете дело с категориальной переменной, также известной как фактор.
Символьные столбцы считываются в множитель, если вы используете data.frame
, as.data.frame
, read.table
... без явной установки stringsAsFactors=FALSE
. Это может объяснить, почему вам приходится иметь дело с этим типом данных, когда кажется, что вы не хотите.
Элементы вектора factor
могут принимать ограниченное количество значений, заданных его атрибутом levels
. Эти уровни отображаются при печати unique(dfrm1$name)
вместе со значениями.
Когда вы удаляете элементы из вектора factor
, по умолчанию сохраняются все уровни, включая те, которые больше не описывают какой-либо элемент вектора.
См. Также ?droplevels
Чтобы преобразовать factor
в character
, используйте as.character
.
См. Пример ниже:
x <- factor(c("a","b"),levels = c("a","b","c"))
x # same output for unique(x)
# [1] a b
# Levels: a b c
levels(x)
# [1] "a" "b" "c"
length(x)
# [1] 2
length(levels(x))
# [1] 3
as.character(x)
# [1] "a" "b"
levels(as.character(x))
# NULL