У меня есть формула в R, например
y ~ x + z + xx + zz + tt + x:xx + x:zz + xx:z + zz:xx + xx:zz:tt
или даже более сложная (y~x*z*xx*zz*tt)
Обратите внимание, что имена в правой части формулы специально выбраны длябыть каким-то образом похожим хотя бы на один другой термин.
Теперь вопрос состоит в том, как удалить термины взаимодействия, связанные с конкретным основным эффектом.Например, если я удалю термин x (основной эффект), я хочу удалить термины взаимодействия, которые также включают в себя x, здесь x:xx
.
Я пробовал grepl()
, но он удалит любой термин, содержащийчастично или полностью слово.В моем примере он удаляет x,xx,x:xx,xx:z,zz:xx,xx:zz:tt
какие-либо идеи относительно функции, которая делает это?
Обновление : что я уже пробовал:
f = y ~ x + z + xx + zz + tt + x:xx + x:zz + xx:z + zz:xx + xx:zz:tt
modelTerms = attr(terms(f) , which = 'term.labels')
modelTerms[!grepl(pattern = 'x', x = modelTerms)]