我正在使用的一小部分数据是:
ENSG00000000003.14_2 | TSPAN6 13.4621
ENSG00000000005.6_3 | TNMD 0.13211
ENSG00000000419.12_4 | DPM1 29.8074
ENSG00000000457.14_4 | SCYL3 3.68858
ENSG00000000460.17_6 | C1orf112 1.87928
我的目标是根据数据创建表,其中基因是行,列是样本,表达水平是输入。第二列是表达水平(例如:13.4621)。信息一直到“ |”是样本(Ex:ENSG00000000003.14_2),后面的小块是基因(Ex:TSPAN6)。
到目前为止,在我的代码中,我已将数据分为三列:表达水平,样品和基因。现在,我要创建表。
现在,我有代码:
dataframe <- dcast(dataframe, Sample ~ Gene, value.var="Expression", fun.aggregate=mean)
输出为:
我想要的表是其中基因是行,列是样本,表达水平是输入值的表。
我似乎找不到任何有用的东西。
我已经尝试过data.table,dcast以及此网站上显示的所有其他内容。
非常感谢您的帮助。
请不要投票。
library(tidyverse)
dataframe %>%
pivot_wider(
id_cols = Gene,
names_from = Sample,
values_from = Expression
)
## A tibble: 5 x 6
# Gene ENSG00000000003.… ENSG00000000005.… ENSG00000000419… ENSG00000000457… ENSG00000000460…
# <fct> <dbl> <dbl> <dbl> <dbl> <dbl>
#1 TSPAN6 13.5 NA NA NA NA
#2 TNMD NA 0.132 NA NA NA
#3 DPM1 NA NA 29.8 NA NA
#4 SCYL3 NA NA NA 3.69 NA
#5 C1orf… NA NA NA NA 1.88
数据。
dataframe <- read.table(text = "
Sample Gene Expression
ENSG00000000003.14_2 TSPAN6 13.4621
ENSG00000000005.6_3 TNMD 0.13211
ENSG00000000419.12_4 DPM1 29.8074
ENSG00000000457.14_4 SCYL3 3.68858
ENSG00000000460.17_6 C1orf112 1.87928
", header = TRUE)