R语言自学笔记-4数据结构之向量,标量

#数据结构

#R对象:object,它是指可以赋予给变量的任何事物,包括常量、数据结构、函数,甚至图形。

#对象都拥有某种模式,描述了此对象是如何存储的,以及某个类。

#用来存储数据的对象类型

#1.向量,标量

#2.矩阵

#3.数组

#4.列表

#5.数据框

#6.因子

#7.时间序列

#它们在存储数据的类型、创建方式、结构复杂度以及用于定义和访问其中个别元素等等方面均有所不同

#向量

#vector,R中最重要的一个概念,是构成其他数据结构的基础。

#R中的向量概念与数学中向量是不同的,类似于数学上的集合的概念,由一个或多个元素所构成。

#是用于存储数值型、字符型或逻辑型数据的一维数组。

#用函数c来创建向量。

#c代表concatenate连接,也可以理解为收集collect,或者合并combine。

#向量的数据结构

euro #欧元汇率,长度为11,每个元素都有命名

landmasses #48个陆地的面积,每个都有命名

precip #长度为70的命名向量

rivers #北美141条河流长度

state.abb #美国50个州的双字母缩写

state.area #美国50个州的面积

state.name #美国50个州的全称

#定义x变量

#<-  赋值操作符

#c    函数

#,  不同元素之间用,来分隔

x<-c(1,2,3,4,5)

#这就定义好了一个向量,也可以说是对象x

#接下来在终端直接敲x就可以输出这个变量的内容

x

#这里是自动调用了print函数来打印变量的内容

print(x)

#print可以省略

#向量中的元素可以是数值型、字符串型或者逻辑型

y<-c("one","two","three")

y

##字符串一定要加"",新手常见错误,不加引号会提示对象找不到

##搜索包的时候,包的名字一定要加""

#因为R中如果不加"",就会把这些字符串当做对象

#例如变量或者函数,去整个软件中搜索,如果搜索不到,就会提示对象找不到

#ex

#不加引号R会把字符串当内部人,加引号表示字符串是外部的

#字符串之间有空格或逗号

y<-c("one","two",hello,wold)

y<-c("one","two","hello,wold")

y

#定义一个变量z为逻辑型,逻辑型向量包括true或false,用于条件判断中

#在R中,用到逻辑型向量全部大写,也可以简写成T或F

#逻辑型向量不用加引号

z<-c(TRUE,T,F)

z

#但不能使用首字母大写模式

z<-c(True,T,F)

#这种模式就不是逻辑型了,会被当成字符串,必须加上引号

#可以用一些快捷方式来构建向量

#  :  可以用来构建等差数列

c(1:100)

#使用seq函数调整等差差值

#参数from为起始值

#参数to为终止值

seq(from=1,to=100)

#生成从1到100的向量

#参数by设置等差值

seq(from=1,to=100,by=2)

#参数length.out用来控制输出的个数

seq(from=1,to=100,length.out=10)

#rep函数生成重复序列

?rep

rep(2,5)

rep(x,5)

rep(x,each=5)

rep(x,each=5,times=2)

#向量特点:所有的元素必须是同一类型

#都是数字型,都是字符串型、逻辑型,不能混合

a<-c(1,2,"one")

a

#敲一下a,打印出内容

#所有的元素都带上""

#说明数值型被转换成字符串型变量了

#可以使用mode或者type.out查看向量类型

mode(a)

#显示为"character"#字符串型

#"logical"逻辑型

#为什么向量必须是同一类型呢

#因为只有同一类型才可以进行计算,不是同一类型很难处理

#如果向量中只有一个元素,也可以不加c函数,直接赋值

a=2

b=3

c="Hello,World"

d=TRUE

#这种向量也称为 标量

#这和其他编程语言类似

#例如:Per里面的最基础的就是标量,只用来存储一个值

a,b,c,d

#Error: unexpected ',' in "a,"

a;b;c;d;

#向量是R与其它编程语言非常大的一个不同

#其他编程语言中没有向量

#R中最基础的数据结构是一个集合,而不是一个标量

#这种被称为向量化编程

#为什么R中要是用向量化编程呢?

#因为R是统计软件,它的作用是统计学家,而不是计算机科学家

#向量化编程有非常多的好处

#例:两个集合

x<-c(1,2,3,4,5)

y<-c(6,7,8,9,10)

#现将x集合中每个元素扩大一倍,与y集合对应的数值相加

#一般编程语言这样处理

1*2+6

#向量化编程这样处理

x*2+y

#这样就出来结果了,非常方便

#矩阵运算,用循环来编程,就更复杂了;向量化编程还是非常方便

#向量化编程是R的精髓所在,也是R与其他编程语言最大的不同

#向量化编程在统计中具有非常高的效率

#最大的优势是避免使用循环

#从x向量中取出大于3的值

# x(x>3)

#Error in x(x > 3) : could not find function "x"

x[x>3]

#一下就完成了,不需要使用循环一个一个来判断

#始终不能忘记R是统计学软件,处理的就是一大堆的数字,不是单独的几个数字

#所以最基础的数据结构就是向量,而不是几个数字,所以要采用向量化的编程

#在R中会有大量地方可以用到向量

rep(x,c(2,4,6,1,3))

#用来分别控制x向量中每个元素循环的次数

#这样就按照向量中的设定来进行重复,非常高效

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,793评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,567评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,342评论 0 338
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,825评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,814评论 5 368
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,680评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,033评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,687评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 42,175评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,668评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,775评论 1 332
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,419评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,020评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,978评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,206评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,092评论 2 351
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,510评论 2 343

推荐阅读更多精彩内容