R 如何重新排列数据框,使一列中的值为行名称?
我有一个数据框,包含两个样本约450个探针的450K甲基化β值。此数据显示在三列中,如下所示:R 如何重新排列数据框,使一列中的值为行名称?,r,dataframe,bioinformatics,transpose,tidyverse,R,Dataframe,Bioinformatics,Transpose,Tidyverse,我有一个数据框,包含两个样本约450个探针的450K甲基化β值。此数据显示在三列中,如下所示: >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
>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
>head(ICGC_2)
X932-01-4D X932-01-6D
cg00000029 0.6 0.4
cg00000108 0.3 0.7
cg00000109 0.9 0.1
我想重新排列这个data.frame,以便探测ID是行名,样本ID是列名,这样看起来像这样:
>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
>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")
>库(tidyverse)
ICGC_2%删除_行名%>%column_至_行名(var=“probe_id”)
但这不起作用,因为ICGC中的每个探针ID在列中出现两次(因为有两个样本)。我还尝试:
hello <- data.frame(ICGC[,-2], row.names = ICGC[,2])
你好你很接近了<代码>排列
来自tidyr
包的功能就是您所需要的
library(tidyverse)
ICGC_2 <- ICGC %>%
spread(submitted_sample_id, methylation_value) %>%
remove_rownames() %>%
column_to_rownames(var = "probe_id")
ICGC_2
X932-01-4D X932-01-6D
cg00000029 0.6 0.4
cg00000108 0.3 0.7
cg00000109 0.9 0.1
库(tidyverse)
ICGC_2%
扩散(提交的样本id、甲基化值)%>%
删除_rownames()%>%
列到行名称(var=“probe\u id”)
ICGC_2
X932-01-4D X932-01-6D
cg00000029 0.6 0.4
CG0000108 0.3 0.7
CG0000109 0.9 0.1
数据:
ICGC在base R中,您可以执行以下操作:
wICGC <- reshape(ICGC, idvar = "probe_id",
timevar = "submitted_sample_id", direction = "wide")
wICGC <- data.frame(wICGC[,-1], row.names=wICGC[,1])
wICGC
# methylation_value.X932.01.4D methylation_value.X932.01.6D
# cg00000029 0.6 0.4
# cg00000108 0.3 0.7
# cg00000109 0.9 0.1
wICGC对于不同的透视图,您也可以在重塑中使用melt
library(reshape)
m <- melt(IGC, id=c("submitted_sample_id", "probe_id"))
cast(m, probe_id~submitted_sample_id)
> cast(m, probe_id~submitted_sample_id)
probe_id X932-01-4D X932-01-6D
1 cg00000029 0.6 0.4
2 cg00000108 0.3 0.7
3 cg00000109 0.9 0.1
库(重塑)
m铸件(m,探头id~提交的样品id)
探头id X932-01-4D X932-01-6D
1 cg00000029 0.6 0.4
2 CG0000108 0.3 0.7
3 CG0000109 0.9 0.1