Reputation: 87
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
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
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
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