无法从3列R中获得所需的表

问题描述 投票:-1回答:1

我正在使用的一小部分数据是:

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以及此网站上显示的所有其他内容。

非常感谢您的帮助。

r dataframe
1个回答
0
投票
[显然,该问题是reshape data from long to wide in R的重复。如果是,我将删除此答案,所以

请不要投票。

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)
© www.soinside.com 2019 - 2024. All rights reserved.