【发布时间】:2015-02-11 18:14:40
【问题描述】:
我用字符名称“0”,...,“10”制作了一个矩阵a。现在我制作了一个列名的子集列表 S。我想对矩阵 a 进行子集化,这样我就不会在 S 中有名称的列。我正在尝试执行以下操作,但它给出了错误。有什么想法吗?
> 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
【问题讨论】:
-
试试
a[,setdiff(colnames(a), S)]或a[,!colnames(a) %in% S]