根据两个位置向量删除矩阵中的特定值

时间:2016-02-07 00:27:44

标签: r matrix

我的目标是根据向量删除矩阵中的特定位置。给你一个小例子。

  Users_pos <- c(1,2)
  Items_pos <- c(3,2)

鉴于矩阵A:

     [,1] [,2] [,3]
[1,]    1    2    3
[2,]    4    5    6
[3,]    7    8    9

我根据两个向量User_pos和Item_pos的目的是删除以下值

A[1,3] and A[3,2]

我想知道是否有可能在没有手动输入行和列的值的情况下这样做。

1 个答案:

答案 0 :(得分:0)

您可以使用k对矩阵A中的A[X]元素进行索引,其中X是k行,2列矩阵,其中每行是(行) ,col)指示元素的值。因此,您可以使用以下索引矩阵索引A中的两个元素:

rbind(Users_pos, Items_pos)
#           [,1] [,2]
# Users_pos    1    2
# Items_pos    3    2

使用此索引,您可以选择提取当前使用A[X]存储的信息,或将这些元素替换为A[X] <- new.values。例如,如果您想用NA替换这些元素,则可以执行以下操作:

A[rbind(Users_pos, Items_pos)] <- NA
A
#      [,1] [,2] [,3]
# [1,]    1   NA    3
# [2,]    4    5    6
# [3,]    7   NA    9