2012-07-05 2 views
0

У меня вопрос о фильтрации в моем наборе данных. Мой набор данных выглядеть следующим образом:R выбрасывает ряды на нескольких условиях

 PROJECT  FREQ 
1  <NA>   NA 
2  <NA>   NA 
3  FSHD 0.01282051 
4  <NA>   NA 
5  <NA>   NA 
6 GROEI,CMS 0.02564103 
7  <NA>   NA 
8  GROEI 0.00000132 
9  <NA>   NA 
10 NMD,BRCA 0.03846154 

Вот моя проблема: я хочу, чтобы выбросить все строки, которые не в поле проекта: GROEI и в поле FREQ: больше, чем 0,01.

Я думал о чем-то вроде этого, но это не так ..

a1<-a[!(a$PROJECT != "GROEI" & a$FREQINHDB >= 0.02),] 

Может кто-нибудь помочь мне с этим?

Спасибо!

ответ

3

Поскольку вы хотите, чтобы соответствовать на части строки, вы можете использовать grepl, чтобы соответствовать регулярному выражению ваших данных:

na.omit(a[!grepl("GROEI", a$PROJECT), ]) 
    n PROJECT  FREQ 
3 3  FSHD 0.01282051 
10 10 NMD,BRCA 0.03846154 
+0

Уважаемый Andrie, это правильное решение? a [! (grepl («GROEI», $ PROJECT) == FALSE & aFREQ> 0.04),] – Lisann

+0

@Lisann Это выглядит выполнимым. Вам не нужно '== FALSE' и проверить, нужно ли вам' &&' вместо '&'. Получаете ли вы правильные результаты с кодом? – Andrie

+0

Jep. Я получаю правильные результаты. Спасибо Andrie !! – Lisann