小编Hen*_*rik的帖子

根据 dplyr 与另一个数据帧的匹配更改数据帧中的列名称

我有一个数据框,我想通过匹配另一个数据框来更改列名称。

包含数据和列名称的示例数据框:

df <- data.frame("Gene_Symbol" = c("Gene1","Gene2","Gene3","Gene4","Gene5","Gene6","Gene7"), 
             "Sample1" = c(85657.97656,54417.78906,110949.3281,53197.45313,87156.80469,NA,23880.2832), 
             "Sample2" = c(10423.40918,41660.73047,40094.54688,49519.78125,129387.1094,NA,23903.25977), 
             "Sample3" = c(18778.68359,43655.79688,NA,57447.08984,113266.1484,44810.26172,26316.6543), 
             "Sample4" = c(23919.53125,47829.02344,NA,51478.58203,116275.3359,43110.94922,25417.45508), 
             "Sample5" = c(NA,46677.20313,63389.45313,48722.15234,NA,77135.52344,40265.6875), 
             "Sample6" = c(NA,68596.22656,56802.60938,44712.64063,NA,47744.17969,33689.62891), 
             "Sample7" = c(NA,80506.14844,48722.99219,38629.00781,NA,37885,36638.02344))
Run Code Online (Sandbox Code Playgroud)

我想用来从样本交换到上面 df 中的肿瘤编号。

df2 <- data.frame("Sample_name" = c("Sample1","Sample2","Sample3","Sample4","Sample5","Sample6", "Sample7"), "Tumor_name" = c("Tumor56", "Tumor17", "Tumor99", "Tumor2", "Tumor34", "Tumor84", "Tumor51"))
Run Code Online (Sandbox Code Playgroud)

我在dplyr中找到了一种方法,见下文,但感觉很精细。有更容易的方法吗?

library(tidyverse)
df %>% 
  column_to_rownames("Gene_Symbol")%>%                    # Bring Gene_Symbol to row name before transpose
  t()%>%                                                  # Transpose to be able to use join
  data.frame()%>%                                         # Transpose makes a matrix - make dataframe again
  rownames_to_column("Sample_name")%>%                    # …
Run Code Online (Sandbox Code Playgroud)

r rename columnname dataframe dplyr

6
推荐指数
2
解决办法
502
查看次数

标签 统计

columnname ×1

dataframe ×1

dplyr ×1

r ×1

rename ×1