Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/url/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中模型矩阵中的项?_R - Fatal编程技术网

如何将数据帧中的变量映射到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 &

给定一个公式,有没有办法让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 <- 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
fmaybe
grep((?)?!