2016-08-11 2 views
1

그래서 선형 혼합 모델 내에서 서브 모델을 찾는 R 코드를 살펴 보겠습니다.grepl ("\ |", terms)을 R에서 찾으시겠습니까?

findsubmodel.lmer = function(full) { 

resp = as.character(full)[2] 

tms = attributes(terms(full))$term.labels 

fr = grepl("\\|", tms) 

그래서 "full"가 전체 모델에 대해 이야기 :이 함수에 대한 코드의 첫 번째 부분입니다. 나는 grepl 기능이 일반적으로하는 일을 이해하지만 용어 라벨에서 "\\|"과 일치하는 것을 발견 할 수 있습니까?

답변

3

음, 그냥이 예에서 무엇을 보자 :

full <- y~x+(1|x) 
resp = as.character(full)[2] 
resp 
## [1] "y" 
tms = attributes(terms(full))$term.labels 
tms 
## [1] "x"  "1 | x" 
fr = grepl("\\|", tms) 
fr 
## [1] FALSE TRUE 

그래서 실제적인 점은 포함 된 조건을 식별하는 것입니다 |합니다 (lme4 구문의 임의 효과 용어가 될 것이다). \\|의 의미는 무엇입니까? 우리는 |을 찾고 있지만 정규 표현식에서는 특별한 의미가 있으므로 escape이어야합니다 (R에 문자 | 문자를 찾으라고 알려주세요). 그렇게하기 위해서 우리는 앞에 백 슬래시 \을 넣어야합니다 - 그러나 R은 또한 \을 사용하여 문자열의 특수 문자를 이스케이프합니다. 따라서 우리는 을 실제로 의미 할 때 백 슬래시를 의미하므로 다른 백 슬래시를 추가합니다.

?lme4::findbars ...

관련 문제