2013-04-01 13 views
45

Sto cercando solo il valore del coefficiente del modello lineare B1 (newx), non il nome. Voglio solo il valore 0.5. Non voglio il nome "newx".Come estrarre solo il numero da un numero chiamato (senza il nome)?

newx <- c(0.5,1.5.2.5) 

newy <- c(2,3,4) 

out <- lm(newy ~ newx) 

out assomiglia:

Call: 
lm(formula = newy ~ newx) 

Coefficients: 
(Intercept)   newx 
     1.5   1.0 

sono arrivato qui. Ma ora sono bloccato.

out$coefficients["newx"] 

newx 

1.0 
+5

'as.numeric (su $ coefficienti [ "newx"])' – Ben

+0

as.numeric è funziona. Forse è un modo economico per forzare un numero? –

risposta

65

Per un singolo elemento del genere, utilizzare [[ anziché [. Confronto:

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

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

Più in generale, utilizzare 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. 
Problemi correlati