You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何筛选data frame中两列wpid值相同的行

解决方法:筛选DataFrame中两列同名值相等的行

你的需求很明确——要从有两个同名wpid列的DataFrame里,只保留两列wpid值完全相同的行,下面给你几种实用的R语言解决方案:

方法1:直接使用列索引筛选

因为两个wpid列分别是第1列和第3列,我们可以直接通过列位置来比较:

# 筛选两列wpid值相等的行
filtered_df <- wp_data_ensembl[wp_data_ensembl[, 1] == wp_data_ensembl[, 3], ]

方法2:先重命名列再筛选(更直观)

为了避免重名列带来的歧义,先给两列改个清晰的名字,再进行筛选:

# 给重名列重命名
colnames(wp_data_ensembl) <- c("wpid_left", "gene", "wpid_right", "name")
# 筛选两列值相等的行
filtered_df <- wp_data_ensembl[wp_data_ensembl$wpid_left == wp_data_ensembl$wpid_right, ]

方法3:使用dplyr包(tidyverse风格)

如果你习惯用tidyverse的语法,dplyr的rename+filter组合会更简洁:

library(dplyr)

filtered_df <- wp_data_ensembl %>%
  # 给两个wpid列重命名
  rename(wpid_first = 1, wpid_second = 3) %>%
  # 筛选值相等的行
  filter(wpid_first == wpid_second)

执行完上面任意一种方法后,你可以用head(filtered_df)查看结果,就能得到只保留两列wpid值相同的行啦~

内容的提问来源于stack exchange,提问作者Krutik

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.14 06:24:40