我有一個數據框包含約450K甲基化的beta值。 450個探針用於兩個樣品。該數據顯示在三列,看起來像這樣:如何重新排列數據框,以便一列中的值是行名稱?
>head(ICGC)
submitted_sample_id probe_id methylation_value
1 X932-01-4D cg00000029 0.6
2 X932-01-6D cg00000029 0.4
3 X932-01-4D cg00000108 0.3
4 X932-01-6D cg00000108 0.7
5 X932-01-4D cg00000109 0.9
6 X932-01-6D cg00000109 0.1
我想,這樣的探頭ID是rownames和樣品ID是列名,因此它看起來重新安排這data.frame像這樣:
>head(ICGC_2)
X932-01-4D X932-01-6D
cg00000029 0.6 0.4
cg00000108 0.3 0.7
cg00000109 0.9 0.1
我曾嘗試:
>library(tidyverse)
ICGC_2 <- ICGC %>% remove_rownames %>% column_to_rownames(var = "probe_id")
但隨着ICGC每個探針ID列中出現兩次(因爲有兩個樣本),並沒有工作。我也試過:
hello <- data.frame(ICGC[,-2], row.names = ICGC[,2])
但是這有同樣的問題。我想以這種方式重新排列數據的原因是因爲我想將beta值轉換爲M值並將此數據用作cpg.annotate中的對象(可通過Bioconductor軟件包DMRcate獲得) - cpg.annotate要求對象將獨特的Illumina探針ID作爲rownames和唯一的樣品ID作爲列名稱。
謝謝!