我有以下的table1
,它是由6列和8083行组成的数据框。下面我展示了这个table1
的头部:
|gene ID | prom_65| prom_66| amast_69| amast_70| p_value|
|:--------------|---------:|---------:|---------:|---------:|---------:|
|LdBPK_321470.1 | 24.7361| 25.2550| 31.2974| 45.4209| 0.2997430|
|LdBPK_251900.1 | 107.3580| 112.9870| 77.4182| 86.3211| 0.0367792|
|LdBPK_331430.1 | 72.0639| 86.1486| 68.5747| 77.8383| 0.2469355|
|LdBPK_100640.1 | 43.8766| 53.4004| 34.0255| 38.4038| 0.1299948|
|LdBPK_330360.1 | 2382.8700| 1871.9300| 2013.4200| 2482.0600| 0.8466225|
|LdBPK_090870.1 | 49.6488| 53.7134| 59.1175| 66.0931| 0.0843242|
我有另一个数据框,名为accessions40
,其中包含510个基因ID的列表。它是table1
的第一列的子集,即所有值(510个)都包含在table1
的第一列(8083个)中。下面显示了accessions40
的前几行:
|V1 |
|:--------------|
|LdBPK_330360.1 |
|LdBPK_283000.1 |
|LdBPK_360210.1 |
|LdBPK_261550.1 |
|LdBPK_367320.1 |
|LdBPK_361420.1 |
我想做的是:生成一个新的 `table2`,其中第一列(基因ID)仅包含在 `accessions40` 中存在的值,并从 `table1` 的其他五列中获取相应的值。换句话说,我想根据 `accessions40` 的值对我的 `table1` 进行子集筛选。
!
),即setDT(table)[!gene_ID %chin% accessions40$V1]
,可实现将不在accessions40$V1
中的gene_ID
筛选出来。 - akrun