Подходим и заменяем в R - PullRequest
       0

Подходим и заменяем в R

0 голосов
/ 20 января 2020

Я бы хотел сопоставить имена строк из таблицы 1 с именами столбцов из таблицы 2, а затем заменить их соответствующими именами из столбца n в таблице 1. table1

                  x y n
CAAGCCAAGCTAGATA  5 6 um
AATCCCAAGTGACACC  4 1 cs
AATCTCAAGTCACACC  4 1 cs

table2

  CAAGCCAAGCTAGATA AATCCCAAGTGACACC AATCTCAAGTCACACC
a      1                   3                 5
b      2                   3                 4
c      6                   3                 6
d      8                   3                 5

результат

      um cs cs
a      1  3  5
b      2  3  4
c      6  3  6              
d      8  3  5

1 Ответ

1 голос
/ 20 января 2020

Одной из опций также является передача именованного вектора для сопоставления

names(df2) <-  setNames(df1$n, row.names(df1))[colnames(df2)]

df2
#  um cs cs
#a  1  3  5
#b  2  3  4
#c  6  3  6
#d  8  3  5

data

df1 <- structure(list(x = c(5L, 4L, 4L), y = c(6L, 1L, 1L), n = c("um", 
"cs", "cs")), class = "data.frame", row.names = c("CAAGCCAAGCTAGATA", 
"AATCCCAAGTGACACC", "AATCTCAAGTCACACC"))

df2 <- structure(list(CAAGCCAAGCTAGATA = c(1L, 2L, 6L, 8L), AATCCCAAGTGACACC = c(3L, 
3L, 3L, 3L), AATCTCAAGTCACACC = c(5L, 4L, 6L, 5L)),
class = "data.frame", row.names = c("a", 
"b", "c", "d"))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...