我制作了一个字符名称为" 0",...," 10"的矩阵。现在我创建列名称的子集列表S.我想要对矩阵a
进行子集化,以便我不会在S中使用名称的列。我正在尝试执行以下操作,但它&# 39;给出错误。有什么想法吗?
> a
0 1 2 3 4 5 6 7 8 9 10
[1,] 1 1 11 21 31 41 51 61 71 81 91
[2,] 1 2 12 22 32 42 52 62 72 82 92
[3,] 1 3 13 23 33 43 53 63 73 83 93
[4,] 1 4 14 24 34 44 54 64 74 84 94
[5,] 1 5 15 25 35 45 55 65 75 85 95
[6,] 1 6 16 26 36 46 56 66 76 86 96
[7,] 1 7 17 27 37 47 57 67 77 87 97
[8,] 1 8 18 28 38 48 58 68 78 88 98
[9,] 1 9 19 29 39 49 59 69 79 89 99
[10,] 1 10 20 30 40 50 60 70 80 90 100
> colnames(a)
[1] "0" "1" "2" "3" "4" "5" "6" "7" "8" "9" "10"
> S <- as.character(c(0,2))
> S
[1] "0" "2"
> a[,-S]
Error in -S : invalid argument to unary operator
答案 0 :(得分:1)
你可以尝试
a[,setdiff(colnames(a), S)]
或者
a[,!colnames(a) %in% S]