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向量中每个元素循环的次数

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

你可能感兴趣的:(R语言自学笔记-4数据结构之向量,标量)