根据数据帧的间隔改变矩阵值

时间:2018-05-09 07:08:16

标签: r dataframe matrix intervals bin

我想将3到10.5的间隔分成4个连续的箱子。然后,我想将它们用作列名,并将一些数字设置为这些列的值,如下所示:

df<-read.table(text="name1   name2    (3,4.5)     (4.5,6)     (6,7.5)     (7.5,9) (9,10.5)
               a_fgh   l_opu   10  -31 75  50  -69 
               c_dfg   a_fgh   45  60  30  33  38
               p_opu   c_dfg   75  57  40  22  -63
               l_opu   c_dfg   -69 -56 78  96  78
               ",
               header=TRUE, check.names = FALSE,row.names = NULL)

在下一步中,我想使用这些值来更改另一个矩阵的值,如下所示。

mat<-read.table(text="     a_fgh   c_dfg   l_opu
                           a_fgh   0   3.5  7
                           c_dfg 3.5  0   8.5
                           l_opu 7  8.5  0",
                header=TRUE)
mat2<-as.matrix(mat)

在这种情况下,a_fgh和l_opu之间的值等于7,而bin的值介于(6,7.5)之间,但是根据它的df,前两列应该是-69,所以矩阵的值应更改为-69。所以期望的输出将是这样的:

                                 a_fgh   c_dfg   l_opu
                           a_fgh   0   45  75
                           c_dfg 45  0   96
                           l_opu 75  96  0

有什么想法吗?我根本不知道该怎么做。

0 个答案:

没有答案