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

如何操作R语言dataframe以保留与行RS_number值匹配的列

R DataFrame 筛选行列共有rsID的实现方法

核心逻辑是先提取RS_number列取值与DataFrame列名的共同rsID集合,再按该集合同步筛选行和列,即可得到目标维度的方阵。


实现代码

方法1:tidyverse 管道写法

library(dplyr)
# 提取列名和RS_number列的共同rsID
common_rs <- intersect(newdf$RS_number, colnames(newdf))

# 筛选行+筛选列,得到带RS_number列的结果
result <- newdf %>%
  filter(RS_number %in% common_rs) %>%
  select(RS_number, all_of(common_rs))

# 若需要纯数值方阵,可将RS_number设为行名后删除该列
result <- result %>%
  tibble::column_to_rownames("RS_number")

方法2:base R 写法

# 提取共同rsID
common_rs <- intersect(newdf$RS_number, colnames(newdf))

# 先筛选符合条件的行
result <- newdf[newdf$RS_number %in% common_rs, ]
# 再筛选符合条件的列
result <- result[, c("RS_number", common_rs)]

# 转换为纯数值方阵
rownames(result) <- result$RS_number
result <- result[, -1]

效果说明

针对你提供的示例数据,运行后得到的共同rsID为rs1/rs2/rs3/rs4,最终输出4×4的方阵,完全符合你要排除rs5/rs9/rs10的筛选要求,适配你76×76的输出需求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 00:12:00