搜索
查看: 2105|回复: 0

[资源分享] 用R语言做数据分析(3)——向量

[复制链接]

165

主题

5

回帖

1123

积分

金牌会员

积分
1123
发表于 2014-5-24 03:18:14 | 显示全部楼层 |阅读模式
        
        图一 R语言的数据对象类型简介图

        在本系列文章中,接下将分别介绍R语言的几种数据对象:向量、矩阵、数据框与列表、其它特殊对象;
        请大家在学习R语言的时候永远记住一个概念,R语言所有内容都是对象;
        一、向量基本概念
        R语言中最为核心的构成之一

               1、向量构成的基本元素为:数值(numeric)、字符(character)、逻辑值(logical)、复数型(complex);
               2、向量不需要定义类型,可直接赋值:
                   1)生成一个空向量;x<-c();
                   2)给向量赋值。x<-c(0,1,2,3);
              3、向量的元素下标取值是以1开始,这点请刚开始接触R的同学注意。例如:要前例中取x向量中值为1,则为x[2]
              4、如果一个向量中有一个字符,则该向量的类型会变成字符;
                  
                 如果逻辑变量与数值在一起,则为转换成数值。TRUE转变成1 and FALSE 转变成 0.
               
        2、在R语言中没有单一的整数、单一字符的概念
              例如:X<-2;X<-'a';R都是当作向量来处理,只是这个向量只包括单一值。
        3、给向量各元素命名: names(x)
             Demo_3<-1:3
             names(Demo_3) <- c("a","b","ab")
            
        二、几种特殊向量的生成
        1、生成系列seq()
        1)seq(length=, from=, to=)
           Length:指定生成个数
           From:是指开始生成的点
           To:截止点
        2)如果不指定,则默认条件下:seq(N1,N2,BY=)
           N1:开始位置
           N2:截止位置
           BY=指定间隔
         
        2、rep(P,N) 重复生成P值N次  
        
        三、向量运算
        1、取子向量
           通过下标:
                  取某个元素:x[2];(如果X包括名称,注意:x[2]与x[[2]]的区别;
                  取某中几个:x[c(1,2,0)]
                  取某个/几个元素,利用-:x[-n]
        2、向量排序;
             sort(); 输出排序后的结果;
             order();输出排序后的各个向量位置;
            a<-c(3,9,0,12,19)
            sort(a);order();
            
        3、循环。如果二个向量进行运算过程中,二个向量不相同,则R对长度小的向量自动补充值,直到长度等于大的向量。
        例如:
        Demo_5<-1:3;
        Demo_6<-2:5;
        Demo_7= Demo_6+ Demo_5;
         
        Demo_5<-1:3;
        Demo_6<-2:7;
        Demo_7= Demo_6+ Demo_5;
           
         (这也是很多人学习R语言的时候很难理解的地方,为什么会有这种机制)
               vectorized operation(向量化运算)

              1)、如果有一个是向量,是则结果都是向量形式;
              2)、进行向量运算;判断向量是否长度相等,如果长度不相等,则把短向量长度从头开始循环补充值,到与长向量的长度相等(所以二个长度的相关必须是整数倍);

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

 
 
大数据行业交流
大数据行业交流
大数据求职招聘
大数据求职招聘
站长电话:
15010106923
微信联系:
hb-0310
站长邮箱:
ab12-120@163.com
大数据中国微信

QQ   

版权所有: Discuz! © 2001-2013 大数据.

GMT+8, 2024-4-29 15:23 , Processed in 0.058899 second(s), 25 queries .

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