【问题标题】:Match and replace in RR中的匹配和替换
【发布时间】:2020-01-20 15:50:04
【问题描述】:

我想将表 1 中的行名与表 2 中的列名进行匹配,然后将它们替换为表 1 中列 n 中的相应名称。 表1

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

表2

  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

【问题讨论】:

  • names(df2) <- df1$n[match(names(df2), row.names(df1))].

标签: r


【解决方案1】:

一个选项也是传递一个命名向量来进行匹配

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

数据

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"))

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-04-02
    • 1970-01-01
    • 1970-01-01
    • 2015-10-28
    • 1970-01-01
    • 2016-09-14
    相关资源
    最近更新 更多