2016-03-22 13 views
1

Я хочу выбрать элементы x2, который начинается с Loc. Я не знаю, что я делаю неправильно здесь. Любая помощь будет высоко оценена. СпасибоИзвлечение элементов, которые начинаются с определенного рисунка в R

x2 <- c("(Intercept)", "Conc", "LocKhanewal", "LocLAB-PK", "LocLayyah", 
     "LocMultan", "LocToba Tek Singh", "LocVehari", "Conc:LocKhanewal", 
     "Conc:LocLAB-PK", "Conc:LocLayyah", "Conc:LocMultan", "Conc:LocToba Tek Singh", 
     "Conc:LocVehari") 
x2 

[1] "(Intercept)"   "Conc"     "LocKhanewal"   "LocLAB-PK"    
[5] "LocLayyah"    "LocMultan"    "LocToba Tek Singh"  "LocVehari"    
[9] "Conc:LocKhanewal"  "Conc:LocLAB-PK"   "Conc:LocLayyah"   "Conc:LocMultan"   
[13] "Conc:LocToba Tek Singh" "Conc:LocVehari" 

grepl("^Loc.$", x2) 
[1] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE 

Однако, тот же код отлично работает здесь.

x1 <- c("(Intercept)", "Conc", "TypeB", "TypeC", "Conc:TypeB", "Conc:TypeC") 

x1 
[1] "(Intercept)" "Conc"  "TypeB"  "TypeC"  "Conc:TypeB" "Conc:TypeC" 

grepl("^Type.$", x1) 
[1] FALSE FALSE TRUE TRUE FALSE FALSE 
+0

Вам нужно '*' 'grepl ("^Loc. * $ ", X2)'. Во втором случае после «Тип» есть только один символ, поэтому он работает в показанных данных, но с «Loc» в качестве префикса имеется более одного символа. – akrun

+0

Спасибо @akrun. Не могли бы вы изменить свой комментарий, чтобы ответить с некоторым объяснением. Спасибо – MYaseen208

+0

Спасибо, добавил, что в качестве решения – akrun

ответ

2

Мы должны использовать .*, чтобы все символы до конца ($) строки. Во втором случае (к счастью или к сожалению) у нас есть только один символ после «Тип». Таким образом, grep дает TRUE для них. Для «Loc» он отличается от нескольких символов.

grepl("^Loc.*$", x2) 
#[1] FALSE FALSE TRUE TRUE TRUE TRUE TRUE TRUE FALSE FALSE FALSE FALSE FALSE FALSE