R语言学习之一些基本数据的建立以使用

R语言是也可以说是一门面向对象的语言,向量是作为其最基础的对象来进行运算的


使用c来创建向量

#R语言中的向量是对象
#基本对象是向量
#用c来创建
c(1,2,3,4)
#对字符串建立向量
c('cao','kai')
#数值向量做四则运算
#若是两个不同长度的向量,短的向量会重复出现
c(1,2,3,4) + c(1,2)
#使用冒号来创建向量
1:6
1:6
#向量的;逻辑运算是对中间向量进行一一对比
c(1,2,3,4) > c(1,1,1,1)
c(1,2,3,4) > c(1,1,1,1)

函数的使用


#函数的创建 以exp为例
#使用函数提示 用 tab  以ex开头的所有函数 参数也可以用tab
#以向量作为参数
exp(c(1,2,3,4))
#赋值操作 用<-
#快捷键是alt键加横杠 来创建<-
x <- c(1,2,3,4)
x
#从变量中取子集
y <- log(x)
y(1)
x[1:3]
#用数值向量或逻辑向量做索引
x[x>1]
#数组是一个多维的向量
x <- 1:12
a <- array(data = x,dim = (3,4))
#取出第二行 第二列
a[2,2]

用数组来创建的时候,需要指明其长度必须一致 ,用array


当类型不一致的时候,可以用数据框来建立


#数组中所有的都是相同数据类型
#数据框,类型可以不一样 但长度必须一样
city <- c('bj','sh','hz')
age <- c(23,43,51,32,60)
sex <- c('F','M','F','M','M')
people <- data.frame(city,age,sex)
people
people
people
people[2,3]
#用美元符号来取
people$age
people$age>30
people[people$age>30,]

使用美元符号来快速访问其中的元素

用列表来进行创建


#列表为不同元素创建不同的长度
mylist <- list(age=age,city=city,sex=sex)
mylist
mylist[1]
用对象来进行创建



用对象来进行创建

#构成符合的对象 用class对象来进行观察
class(people)
clas(mylist)
class(mylist)
attributes(people)
类中的不同函数

代码为

#str函数
str(people)

因此主要的就是这几个

整体的代码如下

#R语言中的向量是对象
#基本对象是向量
#用c来创建
c(1,2,3,4)
#对字符串建立向量
c('cao','kai')
#数值向量做四则运算
#若是两个不同长度的向量,短的向量会重复出现
c(1,2,3,4) + c(1,2)
#使用冒号来创建向量
1:6
1:6
#向量的;逻辑运算是对中间向量进行一一对比
c(1,2,3,4) > c(1,1,1,1)
c(1,2,3,4) > c(1,1,1,1)
#函数的创建 以exp为例
#使用函数提示 用 tab  以ex开头的所有函数 参数也可以用tab
#以向量作为参数
exp(c(1,2,3,4))
#赋值操作 用<-
#快捷键是alt键加横杠 来创建<-
x <- c(1,2,3,4)
x
#从变量中取子集
y <- log(x)
y(1)
x[1:3]
#用数值向量或逻辑向量做索引
x[x>1]
#数组是一个多维的向量
x <- 1:12
a <- array(data = x,dim = (3,4))
#取出第二行 第二列
a[2,2]
a
#数组中所有的都是相同数据类型
#数据框,类型可以不一样 但长度必须一样
city <- c('bj','sh','hz')
age <- c(23,43,51,32,60)
sex <- c('F','M','F','M','M')
people <- data.frame(city,age,sex)
people
people
people
people[2,3]
#用美元符号来取
people$age
people$age>30
people[people$age>30,]
#列表为不同元素创建不同的长度
mylist <- list(age=age,city=city,sex=sex)
mylist
mylist[1]
#构成符合的对象 用class对象来进行观察
class(people)
clas(mylist)
class(mylist)
attributes(people)
#str函数
str(people)

R中的特殊数字有Inf -Inf 表示无穷大,NaN 和Na表示不存在的数,可以用assign来赋值,判断两数相等,最好用all.equal(sqrt(2)^2,2),他有一个容忍度为1e-8,

逻辑赋值 可以用 any all 只要有一个为true 则其为true


R中的几个概念

R中的所有变量都是一个类,来表明这个变量是属于什么类型的,数字是numeric 逻辑值是logical h还有其他常见的量 例如“字符 character 存储类别数据的因子factor 还有存储二进制的raw 无需像C一样一\0来结束字符串

可以用 is来进行判断 是不是属于该类

is.character('he')

转化类型 用as  

x <- '12'
as(x,'numeric')


summary 可以进行信息的汇总

fac <- factor(sample(letters[1:5],replace = TRUE))
summary(fac)
head显示前面的一部分,str显示对象的结构用View 来显示为电子表格,edit 和fix允许以手动的形式来更改数据

可以利用vector函数来建立向量 结果中的值为 0 false 或空字符串

> vector("numeric",5)
[1] 0 0 0 0 0

亦可以以下面几种方式来建立

> numeric(5)
[1] 0 0 0 0 0

创造一个序列

> seq.int(3:12)
 [1]  1  2  3  4  5  6  7  8  9 10

seq_len用于创建一个从1开始到n的序列

> seq_len(5)
[1] 1 2 3 4 5
> 


等等还有许多个

向量的长度length

为向量赋值长度

> #为向量赋值长度
> p <- c(1,2,3,4,5)
> vector('numeric',5)
[1] 0 0 0 0 0
> p <- c(1,2,3,4,5)
> p
[1] 1 2 3 4 5
> length(p) <- 3
> p
[1] 1 2 3
> 
为向量进行命名

> x <- 1:4
> names(x) <- c('a','b','c','d')
> x
a b c d 
1 2 3 4 
> 
rep函数创建同等长度的向量

> rep(1:5,3)
 [1] 1 2 3 4 5 1 2 3 4 5 1 2 3 4 5

通过可以使用cbind和rbind函数来合并两个矩阵

两个矩阵的加减乘除运算依然适用

矩阵的内乘和外乘是不一样的

%*% %o% outer 

列表可以被认为是递归的向量 而矩阵数组等可以被认为是原子的向量,因此列表可以包含其他的列表,

> is.atomic(list())
[1] FALSE
> is.recursive(list())
[1] TRUE
> is.recursive(numeric())
[1] FALSE
> 

列表也有长度但没有维度

算术运算对列表不起作用 因为列表的每个元素不同,所以相加并没有什么意思 但如果元素的类型相同,则可以进行算术运算

向量与列表之间的转化可以用as.list() 来做

NULL和NA的区别 NA是一个标量值,而NULL表示的是一个空值,不占用任何空间

> is.null(NA)
[1] FALSE
成对列表的使用 基本上是在formal 的时候使用

返回一个函数参数的成对列表

> a <- formals(sd)
> a
$x


$na.rm
[1] FALSE

> ?formal
No documentation for ‘formal’ in specified packages and libraries:
you could try ‘??formal’
> ?formal
No documentation for ‘formal’ in specified packages and libraries:
you could try ‘??formal’
> ?formals
> class(a)
[1] "pairlist"
> 

中间是一点错误

列表是每一个元素的类型都可以不同 ,数据框是每列的类型可以不同,但一列中的类型必须相同

t是transpose的缩写,因此可用这个对矩阵进行转置,如果两个数据框的列相同,可以用merge函数进行合并

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值