小编Mon*_*Mon的帖子

R - 将矩阵中的每个值除以其行/列的最大值

我试图通过将每个值除以其列或行名称的最大值中的较小值来转换矩阵中的值.我遇到了麻烦,因为我不知道如何从较大的函数内查询特定值的行/列.

一小部分数据如下所示:加权(对称)邻接矩阵,mat:

              Acousmatic Acoustic Afro-beat Alternative Ambient
  Acousmatic         125       11         3           3       1
  Acoustic            11   112398      1810       24216    3824
  Afro-beat            3     1810     10386        1220     298
  Alternative          3    24216      1220      103286    2838
  Ambient              1     3824       298        2838   20400
Run Code Online (Sandbox Code Playgroud)

作为一个例子,我想通过找到由其对角线给出的"声学"的最大值(112398)和由其对角线给出的"替代"的最大值来转换"替代声学"(24216)的值(103286) ,并将"Alternative-Acoustic"(24216)除以这两个数字中的较小者.所以在这种情况下,较小的将是"替代",所以我想用24216/103286 =〜.2345转换"Alternative-Acoustic"值.

我想自动对此矩阵中的所有值执行此变换,这将导致矩阵的值范围为0-1,对角线为全1.

我在许多不同的迭代中尝试了以下内容,其中"mat"作为矩阵和数据框,但我不知道如何正确查询矩阵中每个值的行和列最大值.这是使用不存在的函数('colmax'和'rowmax'),但我认为它最清楚地表达了我想要做的事情:

transformedmat < - apply(mat,1:2,function(x)x/min(colmax(x),rowmax(x)))

我也尝试编写一个嵌入式函数,但结果很差,我想知道是否有一个更简单的解决方案:

rescalemat <- function(mat){
    apply(mat, 1, function(x){
    colmax<-apply(mat, 2, function(x) max(x))
    rowmax<-apply(mat, 1, function(x) max(x))
    x/min(colmax,rowmax)
    mat
})
}
Run Code Online (Sandbox Code Playgroud)

任何帮助将不胜感激.

谢谢.

database r rows matrix

8
推荐指数
2
解决办法
4011
查看次数

如果条目少于x次,则删除数据框中的行

我有以下数据框,称之为df,这是一个由三个向量组成的数据框:"Name","Age"和"ZipCode".

df=      
  Name Age ZipCode
1  Joe  16   60559
2  Jim  20   60637
3  Bob  64   94127
4  Joe  23   94122
5  Bob  45   25462
Run Code Online (Sandbox Code Playgroud)

我希望删除整个行,df如果Name它在整个数据框中出现少于2次(并且灵活地为3倍,4倍或x倍).基本上保持BobJoe在数据帧,但删除Jim.我怎样才能做到这一点?

我试着把它变成一张桌子:

> table(df$Name)

Bob Jim Joe 
 2   1   2 
Run Code Online (Sandbox Code Playgroud)

但我不知道从那里去哪里.

r duplicate-removal delete-row dataframe

5
推荐指数
1
解决办法
1078
查看次数

R/Igraph在边缘列表中显示边缘权重?

在将图形对象视为边缘列表时,有没有办法显示边缘权重?

我想本着以下精神做点什么:

get.edgelist(graph, attr='weight')
Run Code Online (Sandbox Code Playgroud)

以便查看边缘配对与节点旁边列出的权重,但似乎不允许.我知道如何查看权重的唯一方法是将网络数据视为邻接矩阵.希望这不是唯一的方法.

r igraph

4
推荐指数
1
解决办法
6248
查看次数

标签 统计

r ×3

database ×1

dataframe ×1

delete-row ×1

duplicate-removal ×1

igraph ×1

matrix ×1

rows ×1