我的目标是根据向量删除矩阵中的特定位置。只是给你一个小例子。
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]
我想知道是否有可能在不手动输入行和列的值的情况下这样做。
您可以使用
A[X]
为矩阵A
中的k
元素编制索引,其中X
是 k 行、2 列矩阵,其中每行是指示元素的(行,列)值。因此,您可以使用以下索引矩阵在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