用行索引替换矩阵中的行值

use*_*627 3 indexing row r matrix

我使用[[0,0,0,1],[0,1,0,1],[1,0,0,0],[0,0,1,1]]表示栅格的r矩阵(例如).我想用行索引值替换除0以外的每个值.有没有类似的东西

matrix[matrix==1] <- row_index
Run Code Online (Sandbox Code Playgroud)

这样我的结果会是什么样子[[0,0,0,1],[0,2,0,2],[3,0,0,0],[0,0,4,4]]

我在Mac(10.7.5)和RPY2 2.2.6上使用R 2.15.1来启动R-Methods.或者有没有其他的方式来获得类似统计功能合理的结果histogram,chi_square等等?

Jos*_*ien 5

对于一个简洁,富有表现力的解决方案,我可能会使用这个:

m <- matrix(c(0, 0, 0, 1, 0, 1, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1), 
            nrow = 4, byrow = TRUE)

m[m!=0] <- row(m)[m!=0]
m
#      [,1] [,2] [,3] [,4]
# [1,]    0    0    0    1
# [2,]    0    2    0    2
# [3,]    3    0    0    0
# [4,]    0    0    4    4
Run Code Online (Sandbox Code Playgroud)

  • @ user2132627,请务必点击Josh答案旁边的复选标记,将其答案标记为已接受,如果它正是您要找的那样!谢谢. (2认同)