Claudio Biscaro
Claudio Biscaro

Reputation: 87

How to extract numeric values from a structure object in R

I need to extract numeric values from a variable which is a structure combined with numeric values and names

structure(c(-1.14332132657709, -1.1433213265771, -1.20580568266868, 
-1.75735158849487, -1.35614113300058), .Names = c("carbon", 
"nanotubes", "potential", "neuron", "cell", "adhesion"))

At the end I would like to have a vector with just this information

c(-1.14332132657709, -1.1433213265771, -1.20580568266868, 
-1.75735158849487, -1.35614113300058)

how can I do it? many thanks

Upvotes: 7

Views: 7908

Answers (3)

BenBarnes
BenBarnes

Reputation: 19454

myVec <- structure(c(-1.14332132657709, -1.1433213265771, -1.20580568266868, 
  -1.75735158849487, -1.35614113300058), .Names = c("carbon", 
  "nanotubes", "potential", "neuron", "cell"))

as.numeric(myVec)
# [1] -1.143321 -1.143321 -1.205806 -1.757352 -1.356141

Or

names(myVec) <- NULL

EDIT:

unname for an atomic vector is just names(obj) <- NULL with some superfluous code.

Upvotes: 3

aL3xa
aL3xa

Reputation: 36110

What about unname?

> myVec <- structure(c(-1.14332132657709, -1.1433213265771, -1.20580568266868, 
  -1.75735158849487, -1.35614113300058), .Names = c("carbon", 
  "nanotubes", "potential", "neuron", "cell"))

+ + > > unname(myVec)
[1] -1.143321 -1.143321 -1.205806 -1.757352 -1.356141

Upvotes: 3

Dirk is no longer here
Dirk is no longer here

Reputation: 368409

Both as.numeric() and unname() do this:

R> structure(c(-1.14332132657709, -1.1433213265771, -1.20580568266868,
+              -1.75735158849487, -1.35614113300058, NA),
+            .Names = c("carbon", "nanotubes", "potential", 
+            "neuron", "cell", "adhesion"))
   carbon nanotubes potential    neuron      cell  adhesion 
 -1.14332  -1.14332  -1.20581  -1.75735  -1.35614        NA 
R> foo
   carbon nanotubes potential    neuron      cell  adhesion 
 -1.14332  -1.14332  -1.20581  -1.75735  -1.35614        NA 
R>
R> as.numeric(foo)            ## still my 'default' approach
[1] -1.14332 -1.14332 -1.20581 -1.75735 -1.35614       NA
R>
R> unname(foo)                ## maybe preferable though
[1] -1.14332 -1.14332 -1.20581 -1.75735 -1.35614       NA
R> 

Upvotes: 9

Related Questions