2013-04-01 5 views
45

Ich suche nur den Wert des linearen Modellkoeffizienten B1 (newx), nicht den Namen. Ich möchte nur den Wert 0,5. Ich will nicht den Namen "newx".Wie extrahiere ich nur die Nummer von einer benannten Nummer (ohne den Namen)?

newx <- c(0.5,1.5.2.5) 

newy <- c(2,3,4) 

out <- lm(newy ~ newx) 

out wie folgt aussieht:

Call: 
lm(formula = newy ~ newx) 

Coefficients: 
(Intercept)   newx 
     1.5   1.0 

ich hier ankam. Aber jetzt stecke ich fest.

out$coefficients["newx"] 

newx 

1.0 
+5

'as.numeric (out $ Koeffizienten [ "NEWX"])' – Ben

+0

as.numeric ist funktioniert. Vielleicht ist es eine kostengünstige Möglichkeit, eine Nummer zu erzwingen? –

Antwort

65

Für ein einzelnes Element wie folgt verwenden [[ statt [. Vergleichen:

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

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

Allgemeiner verwenden 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. 
Verwandte Themen