繁体   English   中英

R {ff}:如何在ffdf对象中添加依赖于同一行中其他元素的新列?

[英]R{ff}:How to add a new column which depends on other elements in the same row in ffdf object?

我有一个ffdf对象(23Mx4)和一个带有值“ TUMOR”或“ NORMAL”的字符向量,每个值都有一个名称,一个唯一的icgc_specimen_id,因此,我用这种方式指出某个标本是正常细胞还是肿瘤细胞。

> head(expresion,4)
ffdf (all open) dim=c(23939146,4), dimorder=c(1,2) row.names=NULL
ffdf virtual mapping
                               PhysicalName VirtualVmode PhysicalVmode  AsIs VirtualIsMatrix PhysicalIsMatrix PhysicalElementNo
icgc_donor_id                 icgc_donor_id      integer       integer FALSE           FALSE            FALSE                 1
icgc_specimen_id           icgc_specimen_id      integer       integer FALSE           FALSE            FALSE                 2
gene_id                             gene_id      integer       integer FALSE           FALSE            FALSE                 3
normalized_read_count normalized_read_count       double        double FALSE           FALSE            FALSE                 4
                      PhysicalFirstCol PhysicalLastCol PhysicalIsOpen
icgc_donor_id                        1               1           TRUE
icgc_specimen_id                     1               1           TRUE
gene_id                              1               1           TRUE
normalized_read_count                1               1           TRUE
ffdf data
         icgc_donor_id icgc_specimen_id      gene_id normalized_read_count
1         DO3868           SP8217       SERINC1               9.276133e-05
2         DO3868           SP8217       SERINC2               1.925742e-04
3         DO3868           SP8217       SERINC3               2.531452e-05
4         DO3868           SP8217       SERINC4               4.811070e-07
5         DO3868           SP8217       SERINC5               4.402422e-07
6         DO3868           SP8217       SERP1                 7.620133e-05
7         DO3868           SP8217       SNX13                 1.088022e-05
8         DO3868           SP8217       SNX10                 5.652351e-06
:                    :                :            :                     :
23939139  DO2341           SP5052       FCRLB                 8.290500e-07
23939140  DO2341           SP5052       FDFT1                 7.108729e-05
23939141  DO2341           SP5052       FDPSL2A               7.999602e-08
23939142  DO2341           SP5052       GRIPAP1               6.532955e-05
23939143  DO2341           SP5052       GRINL1A               1.156511e-05
23939144  DO2341           SP5052       GRIP1                 2.465546e-06
23939145  DO2341           SP5052       GRIP2                 1.486814e-06
23939146  DO2341           SP5052       GRK1                  1.678295e-08
> head(specimen_type)
SP3358  SP6685 SP12716  SP8109 SP12780  SP8097 
"TUMOR" "TUMOR" "TUMOR" "TUMOR" "TUMOR" "TUMOR" 

我想在ffdf中添加一列称为sp_type的信息,以了解每一行是在研究肿瘤还是正常细胞。

在正常数据帧中,我将执行以下操作:

expresion$sp_type <- specimen_type[expresion$icgc_specimen_id]

我找不到在ffdf对象中执行相同操作的方法。

我会这样写:

require(ETLUtils)
require(ffbase)
expresion$sp_type <- with(expresion[c('icgc_specimen_id')], 
 recoder(as.character(icgc_specimen_id), from = names(specimen_type), to = specimen_type))

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM