大数据人|大数据第一社区

 找回密码
 注册会员

扫一扫,访问微社区

查看: 2163|回复: 2
打印 上一主题 下一主题

R矩阵那些事(一)

[复制链接]
  • TA的每日心情
    奋斗
    2015-7-30 23:05
  • 签到天数: 12 天

    [LV.3]偶尔看看II

    852

    主题

    972

    帖子

    4804

    积分

    管理员

    Rank: 9Rank: 9Rank: 9

    积分
    4804
    QQ
    跳转到指定楼层
    楼主
    发表于 2014-9-5 07:58:58 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

    R矩阵是R一种重要的数据结构。

    关于矩阵,谈谈这些事。

    事情一:矩阵创建。R矩阵创建可使用matrix()函数,举例说明如下。

    > data1 <- 1:6> data1[1] 1 2 3 4 5 6> matrix1 <- matrix(data1, 2, 3)> matrix1     [,1] [,2] [,3][1,]    1    3    5[2,]    2    4    6

    说明:1)可以使用0或者NA对矩阵进行初始化操作,例如。

    > matrix2 <- matrix(0, 2, 3)> matrix2     [,1] [,2] [,3][1,]    0    0    0[2,]    0    0    0> matrix3 <- matrix(NA, 2, 3)> print(matrix3)     [,1] [,2] [,3][1,]   NA   NA   NA[2,]   NA   NA   NA

          2)可以通过对于一个向量数据进行维数设置,生成矩阵,例如。

    > vc1 <- c(1, 3, 5, 7)> vc1[1] 1 3 5 7> dim(vc1) <- c(2, 2)> vc1     [,1] [,2][1,]    1    5[2,]    3    7

    提示:matrix()函数具有非常强大的功能,函数也包括非常丰富的参数,详细描述,参考R帮助文档,即help(matrix)或者?matrix

    事情二:矩阵运算。矩阵运算常有矩阵转置、矩阵求逆、矩阵乘法或者构建一个单位矩阵等。

    矩阵转置,可用t()函数,例如。

    > matrix4 <- matrix(c(2, 4, 6, 8), 2, 2)> matrix4     [,1] [,2][1,]    2    6[2,]    4    8> t(matrix4)     [,1] [,2][1,]    2    4[2,]    6    8

    矩阵求逆,可用solve()函数,例如。

    > solve(matrix4)     [,1]  [,2][1,] -1.0  0.75[2,]  0.5 -0.25

    矩阵乘法运算,使用运算符%*%,例如。

    > matrix4 %*% solve(matrix4)     [,1] [,2][1,]    1    0[2,]    0    1

    构建单位矩阵或者对角矩阵,可用diag()函数,例如。

    > diag(3)     [,1] [,2] [,3][1,]    1    0    0[2,]    0    1    0[3,]    0    0    1> diag(2, 3)     [,1] [,2] [,3][1,]    2    0    0[2,]    0    2    0[3,]    0    0    2> diag(matrix4)[1] 2 8> diag(c(1, 2, 3), 3)     [,1] [,2] [,3][1,]    1    0    0[2,]    0    2    0[3,]    0    0    3

    提示:关于矩阵常用运算函数,详细描述都可以查阅R帮助文档。


    【想一想】

    1 如何创建矩阵?结合你的实际工作。

    2 A %*% B 和 A*B有什么区别?

    【做一做】

    1 创建一个数值型的矩阵,对矩阵进行转置和求逆运算?

    2 创建一个4阶的单位矩阵?


    回复

    使用道具 举报

    该用户从未签到

    0

    主题

    7

    帖子

    25

    积分

    新手上路

    Rank: 1

    积分
    25
    沙发
    发表于 2016-4-20 17:38:11 | 只看该作者
    非常感谢,支持多多共享好的资源
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    奋斗
    2016-8-28 08:33
  • 签到天数: 1 天

    [LV.1]初来乍到

    0

    主题

    1

    帖子

    56

    积分

    注册会员

    Rank: 2

    积分
    56
    板凳
    发表于 2016-8-24 10:22:22 | 只看该作者
    > matrix(NA,2,3)      等价于     matrix(,2,3)
         [,1] [,2] [,3]
    [1,]   NA   NA   NA
    [2,]   NA   NA   NA

    该会员没有填写今日想说内容.
    回复 支持 反对

    使用道具 举报

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

    本版积分规则

    关闭

    站长推荐上一条 /2 下一条


    id="mn_portal" >首页Portalid="mn_P18" onmouseover="navShow('P18')">应用id="mn_P15" onmouseover="navShow('P15')">技术id="mn_P37" onmouseover="showMenu({'ctrlid':this.id,'ctrlclass':'hover','duration':2})">前沿id="mn_P36" onmouseover="navShow('P36')">宝箱id="mn_P61" onmouseover="showMenu({'ctrlid':this.id,'ctrlclass':'hover','duration':2})">专栏id="mn_P65" >企业id="mn_Nd633" >导航 折叠导航 关注微信 关注微博 关注我们

    QQ|广告服务|关于我们|Archiver|手机版|小黑屋|大数据人 ( 鄂ICP备14012176号-2  

    GMT+8, 2024-5-8 07:41 , Processed in 0.268563 second(s), 35 queries .

    Powered by 小雄! X3.2

    © 2014-2020 bigdataer Inc.

    快速回复 返回顶部 返回列表