如何将数据帧中的变量映射到R中模型矩阵中的项?
给定一个公式,有没有办法让R告诉我们哪些变量“贡献”了公式中的每一个独立项?例如:如何将数据帧中的变量映射到R中模型矩阵中的项?,r,R,给定一个公式,有没有办法让R告诉我们哪些变量“贡献”了公式中的每一个独立项?例如: f<-y~x+x*z+I(x^2)+log(x) attr(terms(f),"term.labels") # [1] "x" "z" "I(x^2)" "log(x)" "x:z" f只要您不使用传递1时返回NA的函数,这应该可以工作: f<-y~x+x*z+I(x^2)+log(x) whichFormula <- function(f, var) { vars &
f<-y~x+x*z+I(x^2)+log(x)
attr(terms(f),"term.labels")
# [1] "x" "z" "I(x^2)" "log(x)" "x:z"
f只要您不使用传递1
时返回NA
的函数,这应该可以工作:
f<-y~x+x*z+I(x^2)+log(x)
whichFormula <- function(f, var) {
vars <- all.vars(f)
n <- length(vars)
DF <- data.frame(matrix(1, ncol=n, nrow=1))
names(DF) <- vars
DF[1, var] <- NA
mm <- model.frame(f, data=DF, na.action=NULL)
unname(
which(
is.na(
unlist(
.External2(stats:::C_modelmatrix,
terms(f),
mm)[1,])[-1])))
}
whichFormula(f, "x")
#[1] 1 3 4 5
fmaybegrep((?)?!