나는 겉으로는 매우 간단하게 뭔가를 찾고 있습니다. grepl() 명령을 사용하여 R의 데이터 프레임을 하위 집합으로 만들거나 루프를 구성하지 않고 여러 다른 구에서 하위 프레임을 만들고 싶습니다.grepl()을 사용하는 문자열 목록을 기반으로 한 서브 세트?
예를 들어, 내가 누구라는 이름의 밥이나 마리아에 대한 모든 행을 꺼내 싶습니다
## example data frame:
tmp = structure(list(Name = structure(c(6L, 8L, 9L, 7L, 2L, 3L, 10L,
1L, 5L, 4L), .Label = c("Alan", "Bob", "bob smith", "Frank",
"John", "Mary Anne", "mary jane", "Mary Smith", "Potter, Mary",
"smith, BOB"), class = "factor"), Age = c(31L, 23L, 23L, 55L,
32L, 36L, 45L, 12L, 43L, 46L), Height = 1:10), .Names = c("Name",
"Age", "Height"), class = "data.frame", row.names = c(NA, -10L
))
tmp
# Name Age Height
#1 Mary Anne 31 1
#2 Mary Smith 23 2
#3 Potter, Mary 23 3
#4 mary jane 55 4
#5 Bob 32 5
#6 bob smith 36 6
#7 smith, BOB 45 7
#8 Alan 12 8
#9 John 43 9
#10 Frank 46 10
## this doesn't work
mynames=c('bob','mary')
tmp[grepl(mynames,tmp$Name,ignore.case=T),]
어떤 아이디어가 도움이 될 것입니다!
당신은 콘솔에 경고를 받고되어야한다. '? grep' 문서는 "길이가 2 이상인 문자 벡터가 제공되면, 첫 번째 요소는 경고와 함께 사용됩니다." –