We can do this with a simple inner_join:
library(dplyr)
DATA %>%
  inner_join(NAMES, by = "symbols") %>%
  select(symbols = gene_id, sample1:sample3)
or with Base R:
output <- merge(NAMES, DATA, by = "symbols")[,-1]
names(output)[1] <- 'symbols'
Output:
             symbols sample1 sample2 sample3
1 ENSMUSG00000000001       1       3       3
2 ENSMUSG00000000003       1       3       3
3 ENSMUSG00000000028       3       3       3
Data:
DATA <- structure(list(symbols = c("Gnai3", "Pbsn", "Cdc45"), sample1 = c(1L, 
1L, 3L), sample2 = c(3L, 3L, 3L), sample3 = c(3L, 3L, 3L)), class = "data.frame", row.names = c(NA, 
-3L))
NAMES <- structure(list(gene_id = c("ENSMUSG00000000001", "ENSMUSG00000000003", 
"ENSMUSG00000000028"), symbols = c("Gnai3", "Pbsn", "Cdc45")), class = "data.frame", row.names = c(NA, 
-3L))