我的目标是根据向量删除矩阵中的特定位置。给你一个小例子。
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]
我想知道是否有可能在没有手动输入行和列的值的情况下这样做。
答案 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