Search code examples
rvectornumericnamed

Extract all values from a vector of named numerics with the same name in R


I'm trying to handle a vector of named numerics for the first time in R. The vector itself is named p.values. It consists of p-values which are named after their corresponding variabels. Through simulating I obtained a huge number of p-values that are always named like one of the five variables they correspond to. I'm interested in p-values of only one variable however and tried to extract them with p.values[["var_a"]] but that gives my only the p-value of var_a's last entry. p.values$var_a is invalid and as.numeric(p.values) or unname(p.values) gives my only all values without names obviously. Any idea how I can get R to give me the 1/5 of named numerics that are named var_a?

Short example:

p.values <- as.numeric(c(rep(1:5, each = 5)))
names(p.values) <- rep(letters[1:5], 5)
str(p.values)
   Named num [1:25] 1 1 1 1 1 2 2 2 2 2 ...
 - attr(*, "names")= chr [1:25] "a" "b" "c" "d" ...

I'd like to get R to show me all 5 numbers named "a".

Thanks for reading my first post here and I hope some more experienced R users know how to deal with named numerics and can help me with this issue.


Solution

  • You can subset p.values using [ with names(p.values) == "a" to show all values named a.

    p.values[names(p.values) == "a"]
    #a a a a a 
    #1 2 3 4 5