2015-08-12 12 views
0

У меня есть данные со столбцом, в котором упоминается пол человека. К сожалению, существует несколько неуместных столбцов/ошибочных значений.Резюме помнит предыдущие значения «мусора»

summary(data$gender) 

дает что-то вроде

boy : 19232 
girl : 14565 
Maths : 3 
Science : 4 
... some 20 garbage values : 1 

Я написал код для замены других, чем мальчик, девочка значения ошибки. Теперь резюме (данные $ пол) дает что-то вроде

boy : 19232 
error : 156 
girl : 14565 
Maths : 0 
Science : 0 
... other garbage values : 0 

Есть ли способ я могу предотвратить вывод значений, для которых рассчитывать в 0?

Зачем мне это - Есть более 100 колонок. Я использую новый столбец флага, который установлен в 1, когда он встречает «ошибку» по любому значению ячейки, и в конце я удаляю записи с флагом = 1. Мне нужно просмотреть краткое описание всех данных., что-то вроде

boy : 19232 
error : 156 
girl : 14565 

Спасибо за любую помощь заранее!

+1

Вероятно, у вас есть фактор, и уровни все еще присутствуют. удалите уровни и повторите попытку. обмен некоторыми данными был бы приятным, см. http://stackoverflow.com/questions/5963269/how-to-make-a-great-r-reproducible-example/5963610#5963610 – mts

+0

Нет. Я преобразовал их в "error ». – rbtj

ответ

2

Функция, которую вы ищете, вероятно, droplevels, чтобы исключить неиспользуемые уровни факторов.

В вашем случае

summary(droplevels(data)$gender) 
2

Вот пример:

data = factor(c("girl","boy","girl","boy","math","girl","girl"), levels = c("girl", "boy", "math")) 
> summary(data) 
girl boy math 
    4 2 1 
data2 = factor(c("girl","boy","girl","boy","math","girl","girl"), levels = c("girl", "boy", "math", "garbage")) 
> summary(data2) 
    girl  boy math garbage 
     4  2  1  0 
> summary(droplevels(data2)) 
girl boy math 
    4 2 1 

В data все нормально. Но в data2 есть еще один уровень, который не используется, и он обеспечивает отображение 0.

Как @ user295691 указал первый droplevels (см. ?droplevels для быстрой справки) поможет вам избавиться от этих уровней ошибок.

Повторяю, у вас есть фактор здесь, и даже если вы установите значения на что-то еще, уровни остаются. Первое достойное объяснение, которое я мог бы сделать, может быть this link here.