열이 특정 관측과 같은 곳에서 dplyr의 필터를 수행하려고합니다.Dplyr 여러 조건의 필터
database %>% dplyr::filter(SOURCE %like% c('%ALPHA%', '%BETA%', '%GAMMA%'))
감사
열이 특정 관측과 같은 곳에서 dplyr의 필터를 수행하려고합니다.Dplyr 여러 조건의 필터
database %>% dplyr::filter(SOURCE %like% c('%ALPHA%', '%BETA%', '%GAMMA%'))
감사
당신은 어떤이있는 경우 일치, ALPHA|BETA|GAMMA
와 grepl
을 사용할 수 있습니다 : 나는 어떤 결과를 반환하지 않는 다음을 사용하려고
Test <- sqldf("select * from database
Where SOURCE LIKE '%ALPHA%'
OR SOURCE LIKE '%BETA%'
OR SOURCE LIKE '%GAMMA%'")
로 sqldf 사용할 수 있습니다 3 패턴 중 SOURCE 열에 포함되어 있습니다. 당신이 대소 문자를 구분하고 싶다면
database %>% filter(grepl('ALPHA|BETA|GAMMA', SOURCE))
, grepl
에 ignore.case = T
를 추가합니다.
%like%
은 data.table
패키지입니다.
Warning message:
In grepl(pattern, vector) :
argument 'pattern' has length > 1 and only the first element will be used
%like%
연산자는 정규 표현식을 사용하여 문자열 일치를 수행하는 grepl
기능, 주변 단지 래퍼입니다 : 당신은 아마이 경고 메시지를보고있다. 따라서 %
은 필요하지 않으며 실제로는 문자 백분율 기호를 나타냅니다.
'ALPHA|BETA|GAMMA'
를 사용하여 결합 또는 세 개의 문으로 테스트를 깰 수
:
database %>%
dplyr::filter(
SOURCE %like% 'ALPHA' |
SOURCE %like% 'BETA' |
SOURCE %like% 'GAMMA'
)
이 내 데이터 세트와 함께 완벽하게 작동하고 일치하는 sqldf, 감사합니다! –