如何只从命名数字(没有名称)中提取数字?

我只是在寻找值的 B1(newx)线性模型系数,而不是名称。我只想要0.5的值。我不想要“ newx”这个名字。

newx <- c(0.5,1.5,2.5)


newy <- c(2,3,4)


out <- lm(newy ~ newx)

out看起来像:

Call:
lm(formula = newy ~ newx)


Coefficients:
(Intercept)         newx
1.5         1.0

我来到这里,但现在我被困住了。

out$coefficients["newx"]


newx
 

1.0
111883 次浏览

对于这样的单个元素,使用 [[而不是 [。比较:

coefficients(out)["newx"]
# newx
#    1


coefficients(out)[["newx"]]
# [1] 1

更一般地,使用 unname():

unname(coefficients(out)[c("newx", "(Intercept)")])
# [1] 1.0 1.5


head(unname(mtcars))
#                     NA NA  NA  NA   NA    NA    NA NA NA NA NA
# Mazda RX4         21.0  6 160 110 3.90 2.620 16.46  0  1  4  4
# Mazda RX4 Wag     21.0  6 160 110 3.90 2.875 17.02  0  1  4  4
# Datsun 710        22.8  4 108  93 3.85 2.320 18.61  1  1  4  1
# Hornet 4 Drive    21.4  6 258 110 3.08 3.215 19.44  1  0  3  1
# Hornet Sportabout 18.7  8 360 175 3.15 3.440 17.02  0  0  3  2
# Valiant           18.1  6 225 105 2.76 3.460 20.22  1  0  3  1


## etc.

如果问题是关于删除名称,那么这里有另一种方法

my_vec <- # some quantile function(returns named vector)
names(my_vec) <- NULL
my_vec
## [1] 1 2 3

另一种方法是使用 broom软件包:

broom::tidy(out)$estimate[1]
#1.5

一个简单而直接的方法是

as.numeric(out$coefficients["newx"])