使用 attr 浏览复杂的 r 对象
navigating through complex r-objects with attr
我正在使用前向选择对素食主义者进行多元冗余分析。有一次我想提取简化模型中的重要术语以形成新模型的右侧。
我知道这些术语在函数输出中的位置,但我无法提取它们:
library(vegan)
data(dune)
data(dune.env)
mod0 <- rda(dune ~ 1, dune.env) # Model with intercept only
mod1 <- rda(dune ~ ., dune.env) # Model with all explanatory variables
obj <- ordistep(mod0, scope = formula(mod1))
重要的模型变量在这里:
obj$terminfo$terms ## or obj$terms
# dune ~ Management + Moisture **<------ this i need**
# attr(,"variables")
# list(dune, Management, Moisture)
# attr(,"factors")
# Management Moisture
# dune 0 0
# Management 1 0
# Moisture 0 1
# attr(,"term.labels")
# [1] "Management" "Moisture" **<------ alternatively this**
# attr(,"order")
# [1] 1 1
# attr(,"intercept")
# [1] 1
# attr(,"response")
# [1] 1
# attr(,".Environment")
# <environment: R_GlobalEnv
我用 $、[[]]、attr
/which
和 [] 尝试了不同的方法,但都失败了。最后,我会创建一个向量:
rhs <- 粘贴(model.terms, collapse = " + ").
如何提取位于给定对象中的术语?
看起来它在第二个元素中,这给出了 "Management+Moisture"
。这是正确的吗?
x <- as.character(obj$terminfo$terms[[2]])
x <- x[x!= "+"]
paste(x, collapse = "+")
terms(obj)
将提取项,formula(obj)
将提取公式,update()
可用于更新排序结果对象。例如,可以使用 update()
.
更改公式
我正在使用前向选择对素食主义者进行多元冗余分析。有一次我想提取简化模型中的重要术语以形成新模型的右侧。 我知道这些术语在函数输出中的位置,但我无法提取它们:
library(vegan)
data(dune)
data(dune.env)
mod0 <- rda(dune ~ 1, dune.env) # Model with intercept only
mod1 <- rda(dune ~ ., dune.env) # Model with all explanatory variables
obj <- ordistep(mod0, scope = formula(mod1))
重要的模型变量在这里:
obj$terminfo$terms ## or obj$terms
# dune ~ Management + Moisture **<------ this i need**
# attr(,"variables")
# list(dune, Management, Moisture)
# attr(,"factors")
# Management Moisture
# dune 0 0
# Management 1 0
# Moisture 0 1
# attr(,"term.labels")
# [1] "Management" "Moisture" **<------ alternatively this**
# attr(,"order")
# [1] 1 1
# attr(,"intercept")
# [1] 1
# attr(,"response")
# [1] 1
# attr(,".Environment")
# <environment: R_GlobalEnv
我用 $、[[]]、attr
/which
和 [] 尝试了不同的方法,但都失败了。最后,我会创建一个向量:
rhs <- 粘贴(model.terms, collapse = " + ").
如何提取位于给定对象中的术语?
看起来它在第二个元素中,这给出了 "Management+Moisture"
。这是正确的吗?
x <- as.character(obj$terminfo$terms[[2]])
x <- x[x!= "+"]
paste(x, collapse = "+")
terms(obj)
将提取项,formula(obj)
将提取公式,update()
可用于更新排序结果对象。例如,可以使用 update()
.