如何在R中使用dcast将数据从长转换为宽?

问题描述

尝试从长到宽重新格式化我的数据。

开始于:

head(rna.dat)
     sample_barcode gene_name HTSeq__Counts
1: TCGA-CS-4938-01B     KRT17             8
2: TCGA-CS-4938-01B     SMAD2          6123
3: TCGA-CS-4938-01B      BRAF          1512
4: TCGA-CS-4938-01B   ANKRD61            16
5: TCGA-CS-4938-01B      MTOR          6474
6: TCGA-CS-4938-01B      EXOG           582

然后我跑步:

rna.wide=dcast.data.table(rna.dat,sample_barcode~gene_name,value.var="HTSeq__Counts")

Aggregate function missing,defaulting to 'length'

...输出

     sample_barcode A1BG A1CF A2M A2ML1
1: TCGA-CS-4938-01B    1    1   1     1
2: TCGA-CS-4942-01A    1    1   1     1
3: TCGA-CS-4943-01A    1    1   1     1
4: TCGA-CS-5393-01A    1    1   1     1
5: TCGA-CS-5396-01A    1    1   1     1

...即计数值填充为1。

例如,位置[1,1]的值应为36:

rna.dat[rna.dat$sample_barcode=="TCGA-CS-4938-01B" & rna.dat$gene_name=="A1BG",]
     sample_barcode gene_name HTSeq__Counts
1: TCGA-CS-4938-01B      A1BG            36

过去,我成功地使用了“重塑”,但是该数据有大约400万行,而且似乎从未完成。 dcast只需几秒钟即可完成。

谢谢!

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)