IT

(이름 없이) 지정된 번호에서 숫자만 추출하려면 어떻게 해야 합니까?

itgroup 2023. 7. 7. 18:57
반응형

(이름 없이) 지정된 번호에서 숫자만 추출하려면 어떻게 해야 합니까?

나는 단지 가치를 찾고 있습니다.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 

이와 같은 단일 요소의 경우,[[보다는[비교:

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

쉽고 직접적인 방법은

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

다른 방법은 다음과 같습니다.broom패키지:

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

언급URL : https://stackoverflow.com/questions/15736719/how-do-i-extract-just-the-number-from-a-named-number-without-the-name

반응형