如何基于第二个数据帧中的部分字符串对数据帧进行子集化?

时间:2018-07-03 23:52:05

标签: 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%并没有运气地分裂了

1 个答案:

答案 0 :(得分:0)

这里有可能使用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")