2016-05-30 2 views
1

Я пытаюсь удалить дубликатыПреобразование dataframe фактор автоматически

laa <-subset(la,select =c(PermID)) 

class(laa) 

laa1<-laa[!duplicated(laa$userPermID), ] 

class(laa1) 

, когда я побежал первые две строки команды класса, показывая его как data.frame, но после запуска дубликата команды он автоматически преобразовывая в фактор. Есть ли какая-то конкретная причина. Поскольку IAM не в состоянии видеть его в dataframe

+0

Скорее всего, это был уже «фактор», когда он все еще находился в data.frame. Используйте 'str' вместо' class' для получения дополнительной информации –

ответ

1

Как мы только выбрать «PermID» на первом этапе, опция по умолчанию в то время как подмножества строк с [, имеющей один data.frame столбца будет drop=TRUE в результате чего vector вместо data.frame. Предполагая, что «PermID» - столбец factor, classvector будет factor. Чтобы этого избежать, используйте drop=FALSE.

laa1 <- laa[!duplicated(laa$userPermID), , drop=FALSE] 

The class(laa1) будет data.frame.


Если посмотреть документацию ?"[", использование по умолчанию

х [I, J, ..., падение = TRUE]

падение: Для матриц и массивов. Если TRUE, результат принуждается к минимальному размеру (см. Примеры). Это работает только для извлекающих элементов, а не для замены. См. Падение для дальнейших .

Смежные вопросы