【问题标题】:Select column of matrix based on a vetcor根据向量选择矩阵列
【发布时间】:2014-08-22 14:57:32
【问题描述】:

我不认为我在标题中描述得很清楚,所以我只是显示问题: assdt 是一个向量:

assdt
 [1] 18 19  1  0 33 26  3  2 31 42 43 41 44

dt 是一个矩阵:

dt 0 dt 1 dt 2 dt 3 dt 4 dt 5 dt 6 dt 7 dt 8 dt 9 dt 10 dt 11 dt 12 dt 13 dt 14 dt 15 dt 16 dt 17 dt 18 dt 19 dt 20
[1,] "0"  "0"  "0"  "1"  "0"  "1"  "0"  "0"  "0"  "0"  "0"   "0"   "1"   "0"   "1"   "0"   "0"   "0"   "0"   "0"   "0"  
[2,] "0"  "0"  "0"  "1"  "0"  "1"  "0"  "1"  "0"  "0"  "0"   "0"   "0"   "0"   "1"   "0"   "0"   "0"   "0"   "0"   "0"  
[3,] "0"  "0"  "0"  "1"  "0"  "0"  "0"  "1"  "0"  "0"  "0"   "0"   "0"   "0"   "1"   "0"   "0"   "0"   "0"   "0"   "0"  
[4,] "0"  "0"  "0"  "1"  "0"  "0"  "0"  "1"  "0"  "0"  "0"   "0"   "0"   "0"   "1"   "0"   "0"   "0"   "0"   "0"   "0"  
[5,] "0"  "0"  "0"  "1"  "0"  "0"  "0"  "0"  "0"  "0"  "0"   "0"   "0"   "0"   "1"   "0"   "0"   "0"   "0"   "0"   "0"  
[6,] "0"  "0"  "0"  "1"  "0"  "0"  "1"  "0"  "1"  "0"  "0"   "0"   "0"   "0"   "1"   "0"   "0"   "0"   "0"   "0"   "0"  
     dt 21 dt 22 dt 23 dt 24 dt 25 dt 26 dt 27 dt 28 dt 29 dt 30 dt 31 dt 32 dt 33 dt 34 dt 35 dt 36 dt 37 dt 38 dt 39
[1,] "0"   "0"   "0"   "0"   "0"   "0"   "1"   "1"   "0"   "0"   "0"   "0"   "0"   "0"   "0"   "0"   "1"   "1"   "0"  
[2,] "0"   "0"   "0"   "0"   "0"   "0"   "1"   "1"   "0"   "0"   "0"   "0"   "0"   "0"   "0"   "0"   "1"   "1"   "0"  
[3,] "0"   "0"   "0"   "0"   "0"   "0"   "1"   "1"   "0"   "0"   "0"   "0"   "0"   "0"   "0"   "0"   "1"   "1"   "0"  
[4,] "0"   "0"   "0"   "0"   "0"   "0"   "1"   "1"   "0"   "0"   "0"   "0"   "0"   "0"   "0"   "0"   "1"   "1"   "0"  
[5,] "0"   "0"   "0"   "0"   "0"   "0"   "1"   "1"   "0"   "0"   "0"   "0"   "0"   "0"   "0"   "0"   "1"   "1"   "0"  
[6,] "0"   "0"   "0"   "0"   "0"   "0"   "1"   "1"   "0"   "0"   "0"   "0"   "0"   "0"   "0"   "0"   "1"   "1"   "0"  
     dt 40
[1,] "1"  
[2,] "1"  
[3,] "1"  
[4,] "1"  
[5,] "1"  
[6,] "1"  

我想选择selectdt <- c(18,19,1,0,33,26,3,2,31,42,43,41,44) 中的列。 dt 中没有第 42、43、44 列,所以忽略它们,我做了dt[,selectdt] 有一个错误subscript out of bounds。怎么做?

【问题讨论】:

  • dt[,selectdt[selectdt
  • 如果selectdt 中也可能有负值,您可以使用dt[, intersect(selectdt, seq_len(ncol(dt)))]

标签: r matrix vector


【解决方案1】:
mat <- as.matrix(mtcars)

cols <- c(1,5,20)
mat[, cols]
#Error in mat[, cols] : subscript out of bounds

mat[, cols[cols <= ncol(mat)]]
#                     mpg drat
#Mazda RX4           21.0 3.90
#Mazda RX4 Wag       21.0 3.90
#...

【讨论】:

    猜你喜欢
    • 2019-04-01
    • 1970-01-01
    • 1970-01-01
    • 2018-03-01
    • 2017-02-16
    • 2015-01-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多