【问题标题】:Subsetting Column from Matrix in R without specific column names specified未指定特定列名的 R 中矩阵的子集列
【发布时间】: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]

标签: r matrix subset


【解决方案1】:

你可以试试

a[,setdiff(colnames(a), S)]

或者

a[,!colnames(a) %in% S]

【讨论】:

    猜你喜欢
    • 2012-03-19
    • 2018-10-20
    • 1970-01-01
    • 1970-01-01
    • 2022-11-08
    • 1970-01-01
    • 1970-01-01
    • 2021-04-29
    • 2013-11-19
    相关资源
    最近更新 更多