微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

如何解决如何在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 举报,一经查实,本站将立刻删除。