【发布时间】:2020-06-15 21:53:29
【问题描述】:
晚上,
我正在尝试从以下形式的对象中获取要添加到数据框中的名称
regressors <- ~ log(Rate) + Weed + Monocot + Warm + Stage + Method
我想要各个回归变量的名称,例如
c("log(Rate)", "Weed",...)
所以我可以在数据框中使用这些,而无需手动操作。
提前谢谢你。
【问题讨论】:
晚上,
我正在尝试从以下形式的对象中获取要添加到数据框中的名称
regressors <- ~ log(Rate) + Weed + Monocot + Warm + Stage + Method
我想要各个回归变量的名称,例如
c("log(Rate)", "Weed",...)
所以我可以在数据框中使用这些,而无需手动操作。
提前谢谢你。
【问题讨论】:
你的意思是这样吗?
attr(terms(regressors), "term.labels")
#> [1] "log(Rate)" "Weed" "Monocot" "Warm" "Stage" "Method"
【讨论】:
vars <- as.character(regressors)[[2]]
names_vars <- strsplit(vars, "\\s\\+\\s")[[1]] # split at + preceded and followed by a space.
## [1] "log(Rate)" "Weed" "Monocot" "Warm" "Stage" "Method"
all.vars 函数可以来救援,尽管它会从变量中删除函数名称,例如 log 和 log(Rate)。
all.vars(regressors)
[1] "Rate" "Weed" "Monocot" "Warm" "Stage" "Method"
【讨论】: