r - 如何根据来自第二个数据帧的部分字符串对数据帧进行子集化?
问题描述
在 R...
我想对数据框 A 进行子集化:
taxa X16_K005A.S1.L1 X16_K007A.S1.L1 X16_K008A.S1.L1
fish 0 2 4
dog 9 0 10
基于来自数据框 B 的部分字符串
K005A
K008A
获取只有第一行和具有该部分字符串的行的数据框:
taxa X16_K005A.S1.L1 X16_K008A.S1.L1
fish 0 4
dog 9 10
我尝试了 grepl、%in% 和 strsplit,但没有成功
解决方案
这是一种使用的可能性grep
dfA[, sapply(dfB[, 1], grep, colnames(dfA))]
# X16_K005A.S1.L1 X16_K008A.S1.L1
#1 0 4
#2 9 10
样本数据
dfA <- read.table(text =
"taxa X16_K005A.S1.L1 X16_K007A.S1.L1 X16_K008A.S1.L1
fish 0 2 4
dog 9 0 10 ", header = T)
dfB <- read.table(text =
"K005A
K008A")
推荐阅读
- gitlab - 通过 Gitlab API 更改密码时禁用登录密码重置
- r-markdown - bookdown 中的手动编号
- python - 通过使用元组索引的 loc 选择分配来填充空数据帧
- python - Python - hash perl 等价的 hash 的 hash
- javascript - i18n.t 没有在 ReactJS 中解析正确的值
- javascript - 从 javascript 代码创建多行文本文件
- angular-material2 - 根据当前主题获取调色板对比色相
- c++ - 使用 ifstream 时检测到堆栈粉碎的原因是什么?
- java - 架构决策:用 Web 客户端替换胖 Java 客户端
- javascript - 如何在 ReactJS 中将数组设置为组件的状态?