0

I have a character x:

x<-c("TTTCGATGTCCACACG", "TTTGTTGAGACGTCGA", "TTTGTTGTCATCTGTT")

and a data frame z

z <- data.frame (y=c(8, 10, 5, 10, 5, 10))
row.names (z) <- c("TTTCGATGTCCACACG", "TTTGTTGAGACGTCGA", "TTTGTTGTCATCTGTT", "TTTCGATGTCCAAACG", "TTTGTTGAATCCTCGA", "TTTGTTGTCATGTGTT")

I would like to select for columns and rows that match names in the x.

output

                  y
TTTCGATGTCCACACG  8
TTTGTTGAGACGTCGA  10
TTTGTTGTCATCTGTT  5

giegie
  • 463
  • 4
  • 11

1 Answers1

1

With R base

> z[rownames(z) %in% x, , drop=FALSE]
                  y
TTTCGATGTCCACACG  8
TTTGTTGAGACGTCGA 10
TTTGTTGTCATCTGTT  5

With dplyr

 library(dplyr)
 library(tibble)
 
 z %>% 
   tibble::rownames_to_column() %>% 
   filter(rowname %in% x)
           rowname  y
1 TTTCGATGTCCACACG  8
2 TTTGTTGAGACGTCGA 10
3 TTTGTTGTCATCTGTT  5
Jilber Urbina
  • 58,147
  • 10
  • 114
  • 138