R中常用的数据结构有四种:向量、矩阵、数据库和列表

(1)基本操作

1.向量的创建

c()函数创建向量;seq()函数创建等差数列的向量;sample()从一列数字中随机抽取几个数;paste0()把数字和字符串有规律的组合起来

rm(list = ls())  #从指定的环境中删除对象
movie = read.csv("电影数据.csv", fileEncoding = "UTF-8", stringsAsFactors = F)c(1, 1, 1, 2, 3, 3, 1, 2, 4, 1, 2, 4, 4, 2, 3, 4, 1, 2, 3, 4)
##   [1] 1 1 1 2 3 3 1 2 4 1 2 4 4 2 3 4 1 2 3 4
class(c)
#[1] "function"
c("a", "b", "c", "d")
##  [1] "a" "b" "c" "d"
# seq(起始值, 终止值, 步长)
seq(0, 10, by = 2)
##  [1]  0  2  4  6  8 10
1:10
##   [1]  1  2  3  4  5  6  7  8  9 10
# sample(被抽取的数据集合, 抽取数量)
set.seed(1234)
sample(1:10, 5)
##  [1] 2 6 5 8 9
paste0("x_", 1:5)
##  [1] "x_1" "x_2" "x_3" "x_4" "x_5"

2.向量的引用

which()函数可以获取某个元素的位置;which.max()和which.min()函数可以直接获取最大值和最小值的位置

# 引用x向量中的第5个元素
x=c(1, 1, 1, 2, 3, 3)
x[5]
##  [1] 3
# 想看看x向量中3所在的位置
which(x == 3)
##  [1] 5 6
which.max(x)
##  [1] 5
which.min(x)
##  [1] 1

3.集合运算

求交集intersect();求并集union();求差集setdiff();

intersect(c(1, 2, 3, 3, 12, 4, 123, 12), c(1, 2, 3))
##  [1] 1 2 3
union(c("狗熊会", "聚数据英才"), c("狗熊会", "助产业振兴"))
##  [1] "狗熊会"     "聚数据英才" "助产业振兴"
setdiff(10:2, 5:3)
##  [1] 10  9  8  7  6  2

(2)常见类型

1.数值向量的花式玩法

小函数 完成功能 使用方法
length 提取向量的长度 length(vector)
max 提取向量中的最大值 max(vector)
min 提取向量中的最小值

min(vector)

mean

提取向量的平均值 mean(vector)
quantile 提取向量的分位数 quantile(vector,prob=seq(0,1,0,25))
sort 将向量重新排序 sort(vector)
rank 返回向量x的秩,即x中数字的大小顺序 rank(vector)
order 返回一个向量升序排序后的数字在原数据中的位置 order(vector)
match 在y中逐个查找x,并返回在y中匹配的位置,若无返回NA match(vector)
cut 将数值型数据分区间转换成因子型数据,即将数值型数据离散化 cut(x,breaks,label)
median 提取向量的中位数 median(vector)
# match函数
x = c(1, 1, 1, 2, 3, 3, 1, 2, 4, 1, 2, 4, 4, 2, 3, 4, 1, 2, 3, 4)
(y = letters[x])  # letters是一个内置字符串,里面储存26个字母字符
##   [1] "a" "a" "a" "b" "c" "c" "a" "b" "d" "a" "b" "d" "d" "b" "c" "d" "a"
##  [18] "b" "c" "d"
match(y, letters[1:4])
##   [1] 1 1 1 2 3 3 1 2 4 1 2 4 4 2 3 4 1 2 3 4
# cut函数
# cut函数可以帮助我们完成一项数据分析的功能:连续数据离散化,也就是把连续型数据变成离散的定性数据来参与建模
(Age = sample(21:100, 20, replace = T))
##   [1] 72 21 39 74 62 76 64 43 94 44 87 43 42 35 39 46 45 33 24 38
# 将年龄数据离散化
label = c('壮年', '中年', '长辈', '老年')
(ages = cut(Age, breaks = c(20, 30, 50, 70, 100), labels = label))
##   [1] 老年 壮年 中年 老年 长辈 老年 长辈 中年 老年 中年 老年 中年 中年 中年
##  [15] 中年 中年 中年 中年 壮年 中年
##  Levels: 壮年 中年 长辈 老年

sort默认升序,添加decreasing=T可使变为降序。

order函数能够输出把元向量升序排序后,每个排序后数据在原始向量中的位置,命令x[order(x)]的实现效果和sort(x)一样。

# sort和order函数
set.seed(1234)
(x = sample(8, 5))
##  [1] 1 5 4 6 7
sort(x)
##  [1] 1 4 5 6 7
sort(x,decreasing=T)
##  [1] 8 6 5 4 2
order(x)
##  [1] 1 3 2 4 5
x[order(x)]
##  [1] 1 4 5 6 7

2.字符向量的花式玩法

# nchar用来提取字符串的长度
nchar("欢迎关注狗熊会")
##  [1] 7
# 看看数据集中的电影名字的长度分别是多少
nchar(movie$name)
##   [1]  3  3  7 12  5  5 12  7  8  4  5  7  4  4  6  4  4  3  2
# 中英文的字符长度计算方法有不同
nchar("Welcome to follow the CluBear")
##  [1] 29
# substr提取子字符串
substr("欢迎关注狗熊会", 1, 4)
##  [1] "欢迎关注"
substr("一懒众衫小", 3, 5)
##  [1] "众衫小"
# paste基本玩法
# collapse可以把一个向量内部的元素粘连起来,而sep则适用于把不同向量分别粘起来
paste(c("双11", "是个", "什么节日"), collapse = "")
##  [1] "双11是个什么节日"
paste("A", 1:4)
##  [1] "A 1" "A 2" "A 3" "A 4"
# paste花式玩法
paste(1:4, collapse = "")
##  [1] "1234"
paste(1:4, sep="")
##  [1] "1" "2" "3" "4"
paste("A", 1:4, sep="_")
##  [1] "A_1" "A_2" "A_3" "A_4"
paste(LETTERS[1:4], 1:4, collapse = "_")
##  [1] "A 1_B 2_C 3_D 4"
paste(LETTERS[1:4], 1:4, sep = "_", collapse = "|")
##  [1] "A_1|B_2|C_3|D_4"
paste(LETTERS[1:4], 1:4)
##  [1] "A 1" "B 2" "C 3" "D 4"
小函数 完成功能 使用方法
nchar 提取字符串的长度 nchar(vector0
substr 从字符串char1提取子字符串 substr(char1,begin,end)
paste 粘贴两个字符串 paste(char1,char2)
grep 查找字符向量x中字符串char1的位置 grep(char1,x)
gsub 将字符向量x中的字符char1替换为字符char2 gsub(char1,char2,x)
# grep返回movie的name中包含“青春”的行号8,movie[8, ]即提取出movie数据集的第8行
(index = grep("青春", movie$name))
##  [1] 8
(young = movie[index, ])
##              name boxoffice doubanscore type duration  showtime director
##  8 谁的青春不迷茫  17798.89         6.4 爱情      108 2016/4/22   姚婷婷
##     star1 index1  star2 index2
##  8 白敬亭  14759 郭姝彤    755
# 看看它的豆瓣评分和票房处于我们电影数据集中的什么位置
young$doubanscore > mean(movie$doubanscore)
##  [1] TRUE
young$boxoffice > mean(movie$boxoffice)
##  [1] FALSEsalary = c("22万", "30万", "50万", "120万", "11万")
(salary0 = gsub("万", "0000", salary))
##  [1] "220000"  "300000"  "500000"  "1200000" "110000"
mean(as.numeric(salary0))
##  [1] 466000
median(as.numeric(salary0))  # 结果是科学计数法的形式
##  [1] 3e+05

R语言的四种数据结构---向量相关推荐

  1. R语言的四种数据结构---数据框

    数据框是最常见的数据结构,一般来讲,从csv或txt文件读入时就会自动存储为数据框对象. 与矩阵不同的是,矩阵只可以存储一种数据类型,而数据框可以存储多种类型,但是每一列必须为相同的数据类型 1.创建 ...

  2. vector 赋值_从零开始学习R语言(一)——数据结构之“向量”(Vector)

    本文首发于知乎专栏:https://zhuanlan.zhihu.com/p/59688569 也同步更新于我的个人博客:https://www.cnblogs.com/nickwu/p/125370 ...

  3. R语言使用sd函数计算向量数据的标准差

    R语言使用sd函数计算向量数据的标准差 目录 R语言使用sd函数计算向量数据的标准差 R语言是解决什么问题的? R语言使用sd函数计算向量数据的标准差 安利一个R语言的优秀博主及其CSDN专栏: R语 ...

  4. R语言使用sort函数对向量数据进行排序、默认从小到大升序排序

    R语言使用sort函数对向量数据进行排序.默认从小到大升序排序 目录 R语言使用sort函数对向量数据进行排序.默认从小到大升序排序 R 语言特点 R语言使用sort函数对向量数据进行排序.默认从小到 ...

  5. R语言使用mean函数计算向量数据的均值

    R语言使用mean函数计算向量数据的均值 目录 R语言使用mean函数计算向量数据的均值 R语言是解决什么问题的? R语言使用mean函数计算向量数据的均值 安利一个R语言的优秀博主及其CSDN专栏: ...

  6. R语言使用length函数计算向量的长度

    R语言使用length函数计算向量的长度 目录 R语言使用length函数计算向量的长度 R语言是解决什么问题的? R语言使用length函数计算向量的长度 安利一个R语言的优秀博主及其CSDN专栏: ...

  7. 简单介绍C语言使用四种方法初始化结构体

    这篇文章说明了什么是结构体,介绍了结构体的概念和使用优点,在C语言中如何使用和初始化结构体方法,通过详细的代码展开进行说明,希望该篇文章对你有所帮助 什么是结构体 在实际问题中,一组数据往往有很多种不 ...

  8. R语言编程艺术#01#数据类型向量(vector)

    R语言最基本的数据类型-向量(vector) 1.插入向量元素,同一向量中的所有的元素必须是相同的模式(数据类型),如整型.数值型(浮点数).字符型(字符串).逻辑型.复数型等.查看变量的类型可以用t ...

  9. c语言饿结构_C语言的四种程序结构

    C语言的四种程序结构 尽管C语言提供了许多低级处理的功能,但仍然保持着良好跨平台的特性,以一个标准规格写出的C语言程序可在许多电脑平台上进行编译,甚至包含一些嵌入式处理器(单片机或称MCU)以及超级电 ...

最新文章

  1. 零基础ui设计培训一定要知道字体设计规则
  2. 共面阻抗对高频PCB 设计中传输线阻抗控制的影响
  3. 【扩展推荐】Intervention/image 图片处理
  4. 2021年春季学期-信号与系统-第九次作业参考答案-第四小题
  5. 【Linux】18.设置静态ip的方法(Ubuntu系统、nas、Red-Hat系统)
  6. java蝇量模式_Head First设计模式——蝇量和解释器模式
  7. Python操作excel(.xlsx)封装类MyPyExcel V2.0
  8. FreeRTOS源码分析与应用开发06:软件定时器
  9. 定时任务莫名停止,Spring 定时任务存在 Bug??
  10. 通达信服务器文件是那个文件夹,通达信的公式在哪个文件夹?
  11. Matlab实现熵权法并计算权重和综合评分——附增完整代码和测试用例
  12. 检验入参合法性有哪些_参数检验和非参数检验是什么意思
  13. ednote服务器运行失败,Endnote安装出现错误的解决办法
  14. JSP水电费管理系统myeclipse开发mysql数据库web结构java编程
  15. 我看凯立德GPS软件的规划问题
  16. opencv之基本形状识别
  17. 给Scrum master的10条暖心建议
  18. centos修改磁盘uuid_Centos7 查看硬盘的UUID | 吴老二
  19. SP软件工程师不可不知的10个概念
  20. MySQL基础知识笔记

热门文章

  1. 微信小程序OCR插件使用指南
  2. Oracle数据库Clob类型Blob类型与String互转
  3. Linux(一): 磁盘分区
  4. Dism 错误 87
  5. 树莓派配置文件config.txt详细介绍
  6. 传统的企业如何实现数字化转型?
  7. 删除vlan 华为s5720_华为S5720系列交换机快速配置手册常用命令
  8. (附源码)基于PHP下的大学生校园交流论坛的设计与实现 毕业设计101634
  9. 动视是否磨灭了暴雪的灵魂?
  10. 安徽大别山农家乐包吃住