排除R调用列名称中的列

时间:2015-12-23 02:43:15

标签: r

假设我有一个名为mymat的矩阵。我需要排除列keyAMLM12014N-R,并创建另一个名为newmat的矩阵。我可以这样做:newmat <- mymat[,-c(1,4)],但有没有办法通过调用列名本身来做到这一点?这样的事情:newmat <- mymat[,-c("key","AMLM12014N-R")]

mymat <- structure(c("chr5:12111", "chr5:12111", "chr5:12113", "chr5:12114", 
"chr5:12118", "0N", "0N", "1N", "0N", "0N", "00", "00", "00", 
"11", "10", "00", "00", "1N", "0N", "00"), .Dim = c(5L, 4L), .Dimnames = list(
    c("34", "35", "36", "37", "38"), c("key", "AMLM12001KP", 
    "AMAS-11.3-Diagnostic", "AMLM12014N-R")))

1 个答案:

答案 0 :(得分:2)

我们可以使用setdiff

mymat[,setdiff(colnames(mymat), c("key","AMLM12014N-R"))]

%in%

mymat[,!colnames(mymat) %in% c("key","AMLM12014N-R")]