gpt4 book ai didi

r - 基于另一个数据框/列表在数据框中的列子集

转载 作者:行者123 更新时间:2023-12-03 14:41:14 25 4
gpt4 key购买 nike

我有以下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的其他五列中的对应值。换句话说,我想根据 table1的值对 accessions40的第一列进行子集化。

最佳答案

我们可以使用%in%来获取逻辑 vector ,然后基于subset'table1'的行。

subset(table1, gene_ID %in% accessions40$V1)

更好的选择是 data.table
library(data.table)
setDT(table1)[gene_ID %chin% accessions40$V1]

或者使用 filter中的 dplyr
library(dplyr)
table1 %>%
filter(gene_ID %in% accessions40$V1)

关于r - 基于另一个数据框/列表在数据框中的列子集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38850629/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com