如何更改线性回归中每个变量的置信水平名称
How to change the names of confidence levels per variable in linear regression
我得到了每个变量的线性置信水平 regression.I 想使用结果对变量进行排序,所以我将结果集保留为数据框。但是,当我尝试对其中一个变量执行 str()
函数时出现错误(如下所示)。如何存储结果数据集以便我能够对其进行处理?
df <- read.table(text = "target birds wolfs
1 9 7
1 8 4
0 2 8
1 2 3 3
0 1 2
1 7 1
0 1 5
1 9 7
1 8 7
0 2 7
0 2 3
1 6 3
0 1 1
0 3 9
0 1 1 ",header = TRUE)
model<-lm(target~birds+wolfs,data=df)
confint(model)
2.5 % 97.5 %
(Intercept) -0.23133823 0.36256052
birds 0.10102771 0.18768505
wolfs -0.09698902 0.00812353
s<-as.data.frame(confint(model))
str(s.5%)
Error: unexpected numeric constant in "str(s.5"
$
运算符后面的表达式必须是有效的 R 标识符。 2.5%
不是有效的 R 标识符,但有一种简单的方法可以使其成为一个:将其放入反引号中:`2.5%`
1。此外,您需要注意列名与 完全匹配 (或者至少它的前缀匹配)。也就是说,需要在%
:
前加一个space
str(s$`2.5 %`)
总的来说,a$b
与 a[['b']]
相同(有一些细微差别;请参阅 documentation)。所以你也可以这样写:
str(s[['2.5 %']])
或者,您可以为有效标识符 data.frame
提供不同的列名,只需分配不同的列名即可。但要注意 make.names
:它使您的字符串成为有效的 R 名称,但代价是以并不总是显而易见的方式破坏它们。依赖它可能会使代码的读者感到困惑,因为以前未声明的标识符突然出现在代码中。同样,您应该 始终 将 check.names = FALSE
指定为 data.frame
,否则 R 会再次破坏您的列名。
1 其实R这里也接受单引号(s$'2.5 %'
)。但是,我建议你立即忘记这个;这是 R 语言的历史事故,将标识符和字符串一视同仁(尤其是因为处理不一致)弊大于利。
我得到了每个变量的线性置信水平 regression.I 想使用结果对变量进行排序,所以我将结果集保留为数据框。但是,当我尝试对其中一个变量执行 str()
函数时出现错误(如下所示)。如何存储结果数据集以便我能够对其进行处理?
df <- read.table(text = "target birds wolfs
1 9 7
1 8 4
0 2 8
1 2 3 3
0 1 2
1 7 1
0 1 5
1 9 7
1 8 7
0 2 7
0 2 3
1 6 3
0 1 1
0 3 9
0 1 1 ",header = TRUE)
model<-lm(target~birds+wolfs,data=df)
confint(model)
2.5 % 97.5 %
(Intercept) -0.23133823 0.36256052
birds 0.10102771 0.18768505
wolfs -0.09698902 0.00812353
s<-as.data.frame(confint(model))
str(s.5%)
Error: unexpected numeric constant in "str(s.5"
$
运算符后面的表达式必须是有效的 R 标识符。 2.5%
不是有效的 R 标识符,但有一种简单的方法可以使其成为一个:将其放入反引号中:`2.5%`
1。此外,您需要注意列名与 完全匹配 (或者至少它的前缀匹配)。也就是说,需要在%
:
str(s$`2.5 %`)
总的来说,a$b
与 a[['b']]
相同(有一些细微差别;请参阅 documentation)。所以你也可以这样写:
str(s[['2.5 %']])
或者,您可以为有效标识符 data.frame
提供不同的列名,只需分配不同的列名即可。但要注意 make.names
:它使您的字符串成为有效的 R 名称,但代价是以并不总是显而易见的方式破坏它们。依赖它可能会使代码的读者感到困惑,因为以前未声明的标识符突然出现在代码中。同样,您应该 始终 将 check.names = FALSE
指定为 data.frame
,否则 R 会再次破坏您的列名。
1 其实R这里也接受单引号(s$'2.5 %'
)。但是,我建议你立即忘记这个;这是 R 语言的历史事故,将标识符和字符串一视同仁(尤其是因为处理不一致)弊大于利。