Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/74.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
如何从summary.glm获取响应变量名_R - Fatal编程技术网

如何从summary.glm获取响应变量名

如何从summary.glm获取响应变量名,r,R,考虑以下几点: set.seed(1) y <- rbinom(10, 1, prob=.5) x <- runif(10) m <- glm(y~x, family=binomial) s <- summary(m) set.seed(1) 也许有更好的答案,但是 as.character(attributes(s$terms)$variables[[2]]) 工作另一个选项- R> strsplit(as.character(s$call)[2],"\\s~

考虑以下几点:

set.seed(1)
y <- rbinom(10, 1, prob=.5)
x <- runif(10)
m <- glm(y~x, family=binomial)
s <- summary(m)
set.seed(1)

也许有更好的答案,但是

as.character(attributes(s$terms)$variables[[2]])
工作

另一个选项-

R> strsplit(as.character(s$call)[2],"\\s~\\s")[[1]][1]
[1] "y"
如果使用
terms()
函数,您可以

with(attributes(terms(m)), as.character(variables[response+1]))
# [1] "y"

对于许多不同的公式,这应该是稳健的。这与
delete.response()
函数使用的方法类似。

您可以(手动)解析
s$call
(输出
glm(公式=y~x,族=二项式)
或模型公式
m$formula
(输出
y~x
)@nrussell,谢谢。这是一个很好的开始。是否有一个干净的字符串函数来提取“~”之前的值?实际上,您甚至可能不需要在这个-
as.character(m$formula)
返回
[1]“~”“y”“x”
,一个长度为三的向量-因此在本例中,
as.character(m$formula)[2]
应该可以完成这项工作。您可能需要在几个不同的公式上测试这一点,以了解这种方法的健壮性,但我猜
~
始终是第一个元素,响应变量始终是第二个,自变量是向量的其余部分。
strsplit(as.character(s$call)[2],“\\s~\\s”)[[1][1]
喜欢一个可行的选项。@nrussell,如果你愿意,你可以添加它作为答案,&我会投赞成票。谢谢你的帮助。太好了。非常感谢。@akrun在这种情况下肯定会起作用,但我试着对公式可能是
y\u var~x
(关联的调用是
glm(formula=y\u var~x)
),它只会返回
y
,否?是的。只需将
m
更改为
s
。我刚刚有机会检查它;-)。谢谢你的建议。