全网最快入门———R语言机器学习05

简介: R 语言是为数学研究工作者设计的一种数学编程语言,主要用于统计分析、绘图、数据挖掘。 机器学习是一门多领域交叉学科,涉及概率论、统计学、逼近论、凸分析、算法复杂度理论等多门学科。专门研究计算机怎样模拟或实现人类的学习行为,以获取新的知识或技能,重新组织已有的知识结构使之不断改善自身的性能。

R 语言是为数学研究工作者设计的一种数学编程语言,主要用于统计分析、绘图、数据挖掘。 机器学习是一门多领域交叉学科,涉及概率论、统计学、逼近论、凸分析、算法复杂度理论等多门学科。专门研究计算机怎样模拟或实现人类的学习行为,以获取新的知识或技能,重新组织已有的知识结构使之不断改善自身的性能。

这节课我们来学校R语言中的高级操作——数据转换

读写R格式文件

R提供了两种存储的方式,一种时候.Rds文件,一种是Rdata文件

Rdata文件类似于工程文件,会存储所有导入的数据集和处理的数据

Rdse文件是保存数据集的文件,比如iris数据

<1>使用saveRds命令可以将数据集保存为Rds格式

将readRds赋值给一个变量x,可以完成对Rds文件的读取。

<2>使用load()函数可以直接打开Rdata文件。

数据转换(一)

#首先,使用openxlsx包中的read.xlsx()函数打开mtcars.xlsx文件

read.xlsx('mtcars.xlsx',sheet = 1,startRow = 1)

#将其赋值为car32变量

car32 <- read.xlsx('mtcars.xlsx',sheet = 1,startRow = 1)

可以使用is.data.frame()判断是否为数据框

is.data.frame(car32)

结果是ture,说明数据是数据框

is.data.frame()函数还可以将数据转换为数据框格式

unlist()可以用于转化成列表

as.factor、as.vector可以用来转化成因子和向量。

数据转换(二)

如何对数据取子集?

可以使用索引的方式:

who <- read.csv("WHO.csv",header = T)

取该数据集的前50行,10列

who1 <- who[c(1:50),c(1:10)]

也可以不连续的提取,取该数据集的1,3,5,8行,2,14,18列:

who2 <- who[c(1,3,5,8),c(2,14,18)]

还可以使用逻辑值来进行筛选,比如使用which函数取出who数据集中continent列的值等于7的数据集合:

who3 <- who[which(who$Continent==7),]

还可以使用逻辑值的设置范围进行取值:

who4 <- who[which(who$CountryID>50 &who$CountryID<=100),]

取出who数据集中CountryID列的值在50到100之间的数据集合

可以直接使用subset()函数进行子集的提取

who4 <- subset(who,who$CountryID>50 &who$CountryID<=100)

在R中可以使用sample函数进行随机抽样

x <- 1:100

(设置一个x样本,数据范围在1到100)

sample(x,30)

(随机取x中的30个样本)

sample(x,30,replace = T)

(随机取x中的30个样本,但是是有放回的抽样,也就是说样本中可以有重复数字出现)

sample函数用于数据框时,如下

who[sample(who$CountryID,30,replace =F),]随机取出了一个子集  

如何删除固定行?最简单的就是使用负索引的方式,如下

mtcars[-1:-5,]  删除对应的列,逗号在前,删除对应的行

将列的值赋值给NULL,相当于清空该列的值

mtcars$mpg <- NULL

数据框如何进行添加与合并?

最简单的方法是使用data.frame()直接生成一个新的数据框

data.frame(USArrests,state.division)

如果单纯的想添加一列,可以用cbind函数

cbind(USArrests,state.division)

直接在数据后面添加一列state.division的数据

但是添加行不容易,因为使用Rbind()必须两者的列名是一样的,下面进行一个示范:

data1 <- head(USArrests,20) 取出前20行数据

data2 <- tail(USArrests,20) 取出后20行数据

rbind(data1,data2) 将两个行合并

在使用cbind和rbind的时候,数据必须有相同的行数和列数

如果数据集中有重复的数据应该如何处理呢?

假设取一个50个数据量的数据集的两个子集,容量分别为30,重复的数据有10

data1 <- head(USArrests,30)

data2 <- tail(USArrests,30)

使用rbind合并

data4 <- rbind(data1,data2)

使用duplicated(data4)判断哪些是重复值,取出重复值:

data4[duplicated(data4),]

加感叹号取出非重复的部分 (感叹号是取反的意思)

data4[!duplicated(data4),]

可以使用unique()函数一步完成非重复部分的提取

unique(data4)

相关文章
|
1月前
|
机器学习/深度学习 开发者 异构计算
机器学习入门-Colab环境
Google Colab(Colaboratory)是一个免费的云端环境,旨在帮助开发者和研究人员轻松进行机器学习和数据科学工作。它提供了许多优势,使得编写、执行和共享代码变得更加简单和高效。Colab在云端提供了预配置的环境,可以直接开始编写代码,并且提供了免费的GPU和TPU资源,这对于训练深度学习模型等计算密集型任务非常有帮助,可以加速模型训练过程。
32 0
|
3月前
|
机器学习/深度学习 数据采集 数据可视化
机器学习入门----线性回归实验记录
机器学习入门----线性回归实验记录
48 0
|
5天前
|
机器学习/深度学习 数据采集 算法
Python中的机器学习入门:从数据预处理到模型评估
Python中的机器学习入门:从数据预处理到模型评估
|
22天前
|
机器学习/深度学习 数据挖掘 程序员
深入理解Python协程:提升并发编程效率基于Python的机器学习入门:从理论到实践
本文旨在探讨Python协程(Coroutine)的内部机制及其在并发编程中的应用。区别于传统的线程和进程,协程提供了一种更轻量级、高效的并发编程模式。通过深入分析协程的工作原理,本文将展示如何利用协程优化程序性能,实现高效的异步任务处理。我们将通过实例探讨协程的创建、事件循环的管理、以及与异步IO的集成,为读者提供一套完整的协程应用方案。此外,本文还将对比协程与其他并发模型(如多线程和多进程)的优劣,帮助读者全面理解协程在现代编程中的重要性。 在本文中,我们将深入探讨机器学习的核心概念,并通过Python实现其基础应用。不同于传统的技术文章摘要,我们希望通过一个故事性的引入,让读者感受到
|
27天前
|
机器学习/深度学习 人工智能 算法
机器学习入门知识
机器学习入门知识
139 0
|
3月前
|
机器学习/深度学习 人工智能 算法
【机器学习基础】机器学习入门(2)
【机器学习基础】机器学习入门(2)
26 0
|
3月前
|
机器学习/深度学习 人工智能 搜索推荐
【机器学习基础】机器学习入门(1)
【机器学习基础】机器学习入门(1)
48 0
|
1月前
|
机器学习/深度学习 算法 数据挖掘
讲解机器学习中的 K-均值聚类算法及其优缺点。
讲解机器学习中的 K-均值聚类算法及其优缺点。
|
1月前
|
机器学习/深度学习 算法 数据挖掘
机器学习中的 K-均值聚类算法及其优缺点
机器学习中的 K-均值聚类算法及其优缺点
107 0
|
1月前
|
机器学习/深度学习 分布式计算 算法
Spark中的机器学习库MLlib是什么?请解释其作用和常用算法。
Spark中的机器学习库MLlib是什么?请解释其作用和常用算法。
16 0

热门文章

最新文章

相关产品