Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How do I extract just the number from a named number (without the name)?

Tags:

r

vector

lm

named

I am looking for just the value of the B1(newx) linear model coefficient, not the name. I just want the 0.5 value. I do not want the name "newx".

newx <- c(0.5,1.5.2.5)  newy <- c(2,3,4)  out <- lm(newy ~ newx) 

out looks like:

Call: lm(formula = newy ~ newx)  Coefficients: (Intercept)         newx          1.5         1.0   

I arrived here. But now I am stuck.

out$coefficients["newx"]  newx    1.0  
like image 986
Andre Mikulec Avatar asked Apr 01 '13 02:04

Andre Mikulec


People also ask

How do I remove a name from a vector in R?

To assign names to the values of vector, we can use names function and the removal of names can be done by using unname function. For example, if we have a vector x that has elements with names and we want to remove the names of those elements then we can use the command unname(x).

How do I create a named list in R?

The list can be created using list() function in R. Named list is also created with the same function by specifying the names of the elements to access them. Named list can also be created using names() function to specify the names of elements after defining the list.


2 Answers

For a single element like this, use [[ rather than [. Compare:

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

More generally, use 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. 
like image 86
Josh O'Brien Avatar answered Sep 26 '22 08:09

Josh O'Brien


If the question is about removing names, another way is here

my_vec <- # some quantile function(returns named vector) names(my_vec) <- NULL my_vec ## [1] 1 2 3 
like image 42
Pradeep Singh Avatar answered Sep 26 '22 08:09

Pradeep Singh