Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/variables/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R-挖泥船(MuMin)中的分块-仅包括与b的相互作用,如果还与a的相互作用_R_Variables_Subset_Interaction_Mumin - Fatal编程技术网

R-挖泥船(MuMin)中的分块-仅包括与b的相互作用,如果还与a的相互作用

R-挖泥船(MuMin)中的分块-仅包括与b的相互作用,如果还与a的相互作用,r,variables,subset,interaction,mumin,R,Variables,Subset,Interaction,Mumin,我想使用Druge::MuMIn来探索我的数据。我只想包括IGISalt ^2和其他环境变量之一之间的交互作用,如果该变量和GISalt之间也存在交互作用 e、 g.我想保留: (GISalt * Forest) AND (I(GISalt^2) * Forest) mod1 <- glm(MLE2017 ~ MLE200405 + (GISalt * Forest) + Scrub + I(GISalt^2) * Forest) 您需要dcIA^2:B、A:B或更明确的形式的表达式!{

我想使用Druge::MuMIn来探索我的数据。我只想包括IGISalt ^2和其他环境变量之一之间的交互作用,如果该变量和GISalt之间也存在交互作用

e、 g.我想保留:

(GISalt * Forest) AND (I(GISalt^2) * Forest)
mod1 <- glm(MLE2017 ~ MLE200405 + (GISalt * Forest) + Scrub + I(GISalt^2) * Forest)

您需要dcIA^2:B、A:B或更明确的形式的表达式!{IA^2:B}{A:B},即没有A^2*B或A*B,或者注意,R公式中的A*B是A+B+A:B的缩写,其中A:B是实际的相互作用项。挖泥船中没有现成的方法将B扩展到任何其他变量,但您可以为术语列表生成合适的表达式

如果一般的表达是!{IA^2:VARIABLE}{A:VARIABLE},您可以使用substitute将名称变量替换为实际变量名称

substitute((!{I(A^2):VARIABLE} || {A:VARIABLE}), list(VARIABLE = as.name("B")))
屈服!{IA^2:B}{A:B}。使用&&运算符为其他每个变量创建这样的表达式。 将所有这些包装到函数中:

makeRule <- function(...) {
    exprList <- lapply(sys.call()[-1], function(x) substitute((! {I(A^2):VAR} || {A:VAR}), list(VAR = x)))
    rval <- exprList[[1]]
    for(x in exprList[-1]) rval <- call("&&", rval, x)
    rval
}
然后:

substitute((!{I(A^2):VARIABLE} || {A:VARIABLE}), list(VARIABLE = as.name("B")))
makeRule <- function(...) {
    exprList <- lapply(sys.call()[-1], function(x) substitute((! {I(A^2):VAR} || {A:VAR}), list(VAR = x)))
    rval <- exprList[[1]]
    for(x in exprList[-1]) rval <- call("&&", rval, x)
    rval
}
 subsetExpr <- makeRule(B,C,D,E)

 dredge(model, subset = subsetExpr)