保留与矩阵 R 具有相同列名的 Dataframe 行

Keep Rows of Dataframe that have same column name of matrix R

我想保留只有 13 列的矩阵数据帧(20 行)的行,这意味着要消除我的数据帧中与矩阵的列名称同名的行。因此最终得到 13 行的最终数据框,这是因为我想在将来绘制热图时将此数据框注释到我的矩阵中。

我不确定这是否真的可行:S

矩阵:

数据帧:

示例数据:

Mydataframe <- data.frame(casecontrol = c(rep("case",10),rep("Control",10)),
                          condition=c(rep("cond1",5),rep("cond2",5),rep("cond3",5),rep("cond4",5)))
row.names(Mydataframe) <- sapply(1:20, function(x) paste0("sample",x))

Mymatrix <- matrix(0,nrow=10,ncol=13)
colnames(Mymatrix) <- sapply(1:13, function(x) paste0("sample",x))

您可以按如下方式找到匹配项并将其删除:

RowsToRemove <- match(colnames(Mymatrix),row.names(Mydataframe))
MyNewdataframe <- Mydataframe[-RowsToRemove,]

输出

> MyNewdataframe
         casecontrol condition
sample14     Control     cond3
sample15     Control     cond3
sample16     Control     cond4
sample17     Control     cond4
sample18     Control     cond4
sample19     Control     cond4
sample20     Control     cond4