2014-09-27 2 views
0

Есть ли способ заменить значения, которые не отображаются в функции table()?R замененные значения отображаются в таблице()

Проблема легко под способность восстановления R-Studio Version 0.98.1062, R версия 3.1.1

x <- c(1, 2, 3, 4, 5, 6, 7, 8, 9, 10) 
y <- c("condition1", "condition2", "condition3", "condition1", "condition2", "condition3", "condition1", "condition2", "condition3", "condition1") 
df <- data.frame(x, y) 

Скажем, я заменить название "condition3" в "condition2"

df$y <- replace(df$y, df$y=="condition3","condition2") 
table(df$y) 

= Ouput

условие1 условие2 condition3

4 .................... 6 ...................... 0

Почему она печатает Condition3 в таблице, когда она имеет 0 значений? Мне нужна функция, которая заменяет условие 3, так что его нет, не только в dataframe, но и в любом дополнительном анализе. Есть ли лучший способ заменить ценности?

+1

Смотрите 'droplevels' возможно? – A5C1D2H2I1M1N2O1R2T1

+0

См. Также более общие вопросы и ответы: http://stackoverflow.com/questions/1195826/dropping-factor-levels-in-a-subsetted-data-frame-in-r – Henrik

ответ

2

Вы можете использовать droplevels, как это:

table(droplevels(df$y)) 
# 
# condition1 condition2 
#   4   6 
+0

Спасибо, это прекрасно! – user2673238

+0

@ user2673238 Если этот ответ подходит вам, это считается хорошей оценкой, чтобы принять ответ. См. Также эту страницу справки: [Что делать, если кто-то отвечает на мой вопрос?] (Http://stackoverflow.com/help/someone-answers) – Jaap

0

Кроме того, чтобы полностью удалить "condition3" от уровней ФР $ у,

df$y <- factor(df$y) 
Смежные вопросы