• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

R语言中将矩阵转化为行列的形式

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

1、创建测试矩阵

> rname <- paste0("r",1:4)
> rname
[1] "r1" "r2" "r3" "r4"
> cname <- paste0("c",1:5)
> cname
[1] "c1" "c2" "c3" "c4" "c5"
> a <- matrix(1:20, nrow = 4, ncol = 5, byrow = T, 
+             dimnames = list(rname,cname))
> a
   c1 c2 c3 c4 c5
r1  1  2  3  4  5
r2  6  7  8  9 10
r3 11 12 13 14 15
r4 16 17 18 19 20

 

2、列行输出

> c1 <- rep(1:nrow(a), ncol(a))
> c1
 [1] 1 2 3 4 1 2 3 4 1 2 3 4 1 2 3 4 1 2 3 4
> c2 <- rep(1:ncol(a),each = nrow(a))
> c2
 [1] 1 1 1 1 2 2 2 2 3 3 3 3 4 4 4 4 5 5 5 5
> out1 <- data.frame(c1,c2,c3 = a[1:length(a)])
> out1
   c1 c2 c3
1   1  1  1
2   2  1  6
3   3  1 11
4   4  1 16
5   1  2  2
6   2  2  7
7   3  2 12
8   4  2 17
9   1  3  3
10  2  3  8
11  3  3 13
12  4  3 18
13  1  4  4
14  2  4  9
15  3  4 14
16  4  4 19
17  1  5  5
18  2  5 10
19  3  5 15
20  4  5 20

 

3、行列输出

> c1 <- rep(1:nrow(a),each = ncol(a))
> c1
 [1] 1 1 1 1 1 2 2 2 2 2 3 3 3 3 3 4 4 4 4 4
> c2 <- rep(1:ncol(a),nrow(a))
> c2
 [1] 1 2 3 4 5 1 2 3 4 5 1 2 3 4 5 1 2 3 4 5
> b <- matrix(1:length(a), nrow = ncol(a), ncol = nrow(a),
+             byrow = T)
> b
     [,1] [,2] [,3] [,4]
[1,]    1    2    3    4
[2,]    5    6    7    8
[3,]    9   10   11   12
[4,]   13   14   15   16
[5,]   17   18   19   20
> out2 <- data.frame(c1, c2, c3 = a[b] )
> out2
   c1 c2 c3
1   1  1  1
2   1  2  2
3   1  3  3
4   1  4  4
5   1  5  5
6   2  1  6
7   2  2  7
8   2  3  8
9   2  4  9
10  2  5 10
11  3  1 11
12  3  2 12
13  3  3 13
14  3  4 14
15  3  5 15
16  4  1 16
17  4  2 17
18  4  3 18
19  4  4 19
20  4  5 20

 


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
R语言之数据处理发布时间:2022-07-18
下一篇:
R语言实战-基本数据管理(3)发布时间:2022-07-18
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap