楼主: 小前奏66
1657 1

[作业] R语言 新手求助 [推广有奖]

  • 1关注
  • 0粉丝

小学生

50%

还不是VIP/贵宾

-

威望
0
论坛币
0 个
通用积分
0
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
360 点
帖子
2
精华
0
在线时间
12 小时
注册时间
2016-5-16
最后登录
2020-1-31

楼主
小前奏66 发表于 2018-2-9 21:21:34 |AI写论文
5论坛币


最佳答案

swufeyumeng 查看完整内容

ab ac ad ae af ag ah bc r1 -0.1358268 -0.03515432 0.910221423 0.4709782 0.316764793 2.82160584 0.16240798 -0.7679324 r2 -0.7009636 1.91916555 -0.009625902 -0.5969284 0.434370244 0.47327518 0.46370962 0.8373360 r3 1.8440363 0.50841026 1.396300745 0.4452090 0.060576495 1.13865864 -0.73514979 -1.0568616 ...
关键词:新手求助 R语言 矩阵 最大值 R语言

沙发
swufeyumeng 在职认证  发表于 2018-2-9 21:21:35
  1. x
复制代码
           ab          ac           ad         ae           af          ag          ah         bc
r1  -0.1358268 -0.03515432  0.910221423  0.4709782  0.316764793  2.82160584  0.16240798 -0.7679324
r2  -0.7009636  1.91916555 -0.009625902 -0.5969284  0.434370244  0.47327518  0.46370962  0.8373360
r3   1.8440363  0.50841026  1.396300745  0.4452090  0.060576495  1.13865864 -0.73514979 -1.0568616
r4   0.8309362 -0.37524732  1.120669802  0.3772439  0.945181333 -0.27489920  0.10151958 -0.9978555
r5   0.5114667 -0.23602945  0.322282350 -1.2697307 -0.004090299  1.95941645  0.28537873 -0.6486047
r6  -1.1498076 -1.99981932  1.106378482  0.4215120 -0.158315343  1.79331477  0.01815467 -0.2230793
r7   1.5627931  0.52753224 -1.985599265 -0.6484660  0.123224431  0.45418826  1.01164024 -0.4275808
r8  -0.7660627  0.82028510  0.378457059 -0.6058417  0.661058855  0.52181802 -0.91708351  0.5363679
r9  -2.8227779 -0.79451962 -0.013354561  1.3549667  1.841390237 -0.06694911  0.42934849  0.6391706
r10  0.6986733  0.29729178 -0.529052473  1.2939560  0.584709367 -0.50784790  0.52121782 -0.4604188
            bd         be
r1   0.8380127 -1.7710201
r2  -1.0860629  0.5538865
r3  -0.1454034 -0.3360077
r4   0.4884433  0.3257074
r5  -1.7127004 -0.7098025
r6  -1.3147878 -2.8919609
r7  -0.9502783  0.3025062
r8   0.4756878  0.7371320
r9  -0.4462427 -1.6025615
r10  0.4214134 -0.1224751

1、从矩阵中按行取最大的数
  1. apply(x, 1, max)
复制代码
      r1        r2        r3        r4        r5        r6        r7        r8        r9       r10
2.8216058 1.9191655 1.8440363 1.1206698 1.9594164 1.7933148 1.5627931 0.8202851 1.8413902 1.2939560

2、从矩阵中提取每行最大的3个数(返回值按数值由高到低排序)
  1. max_3<-function(x) {return(sort(x,decreasing = TRUE)[1:3])}
复制代码
           r1        r2       r3        r4        r5       r6        r7        r8        r9       r10
[1,] 2.8216058 1.9191655 1.844036 1.1206698 1.9594164 1.793315 1.5627931 0.8202851 1.8413902 1.2939560
[2,] 0.9102214 0.8373360 1.396301 0.9451813 0.5114667 1.106378 1.0116402 0.7371320 1.3549667 0.6986733
[3,] 0.8380127 0.5538865 1.138659 0.8309362 0.3222824 0.421512 0.5275322 0.6610589 0.6391706 0.5847094

3、从矩阵中提取每行最大的3个数所在的列名(返回值按数值由高到低排序)
  1. for (i in 1:10) {print(row.names(as.data.frame(sort(x[i,],decreasing = TRUE)[1:3])))}
复制代码
[1] "ag" "ad" "bd"
[1] "ac" "bc" "be"
[1] "ab" "ad" "ag"
[1] "ad" "af" "ab"
[1] "ag" "ab" "ad"
[1] "ag" "ad" "ae"
[1] "ab" "ah" "ac"
[1] "ac" "be" "af"
[1] "af" "ae" "bc"
[1] "ae" "ab" "af"

4、对于矩阵x,保留每行最大的3个数,其余设为0
  1. y<-x
复制代码
          ab        ac        ad       ae        af       ag      ah        bc        bd        be
r1  0.0000000 0.0000000 0.9102214 0.000000 0.0000000 2.821606 0.00000 0.0000000 0.8380127 0.0000000
r2  0.0000000 1.9191655 0.0000000 0.000000 0.0000000 0.000000 0.00000 0.8373360 0.0000000 0.5538865
r3  1.8440363 0.0000000 1.3963007 0.000000 0.0000000 1.138659 0.00000 0.0000000 0.0000000 0.0000000
r4  0.8309362 0.0000000 1.1206698 0.000000 0.9451813 0.000000 0.00000 0.0000000 0.0000000 0.0000000
r5  0.5114667 0.0000000 0.3222824 0.000000 0.0000000 1.959416 0.00000 0.0000000 0.0000000 0.0000000
r6  0.0000000 0.0000000 1.1063785 0.421512 0.0000000 1.793315 0.00000 0.0000000 0.0000000 0.0000000
r7  1.5627931 0.5275322 0.0000000 0.000000 0.0000000 0.000000 1.01164 0.0000000 0.0000000 0.0000000
r8  0.0000000 0.8202851 0.0000000 0.000000 0.6610589 0.000000 0.00000 0.0000000 0.0000000 0.7371320
r9  0.0000000 0.0000000 0.0000000 1.354967 1.8413902 0.000000 0.00000 0.6391706 0.0000000 0.0000000
r10 0.6986733 0.0000000 0.0000000 1.293956 0.5847094 0.000000 0.00000 0.0000000 0.0000000 0.0000000


5、从矩阵中提取每行最大的3个数,返回列名及对应数值,数值由高到低排序
  1. for (i in 1:10) {print(sort(x[i,],decreasing = TRUE)[1:3])}
复制代码
      ag        ad        bd
2.8216058 0.9102214 0.8380127
       ac        bc        be
1.9191655 0.8373360 0.5538865
      ab       ad       ag
1.844036 1.396301 1.138659
       ad        af        ab
1.1206698 0.9451813 0.8309362
       ag        ab        ad
1.9594164 0.5114667 0.3222824
      ag       ad       ae
1.793315 1.106378 0.421512
       ab        ah        ac
1.5627931 1.0116402 0.5275322
       ac        be        af
0.8202851 0.7371320 0.6610589
       af        ae        bc
1.8413902 1.3549667 0.6391706
       ae        ab        af
1.2939560 0.6986733 0.5847094

已有 1 人评分论坛币 学术水平 热心指数 信用等级 收起 理由
admin_kefu + 40 + 2 + 2 + 2 热心帮助其他会员

总评分: 论坛币 + 40  学术水平 + 2  热心指数 + 2  信用等级 + 2   查看全部评分

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2026-1-8 04:36