自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(72)
  • 收藏
  • 关注

原创 第五章:数据操作Ⅱ 第四节:数据表:更快、更方便的数据框(上)

数据表相对于数据框,运行速度更快,使用时也更加方便,实际使用时完全可以取代数据框,数据表有两个优势,第一是运行速度更快,第二是运算十分便利。我们先安装数据表。

2024-03-23 13:22:36 545

原创 第五章:数据操作Ⅱ 第三节:数据结构变形与汇总

Reshape2包中包含大量数据整形和分组计算汇总统计量的函数,变换后的数据可以使用variable与value列表现测量值,所以更方便计算数据统计值,提供变换功能的函数主要由melt()和cast()承担我们先安装reshape2包我们利用reshape2包中的french_frie数据来实现melt()和cast()函数功能该数据主要是统计量炸薯条所用的食用油对薯条味道的影响,具体数据解析如下Melt()函数使用识别标识符、测量变量、测量值这3列重新组织数据根据上述数据探查发现,我们可以认为

2024-03-20 14:40:56 1027

原创 第五章:数据操作Ⅱ 第二节:数据分析:拆分、应用、合并

我们可以使用plyr()来对数据进行拆分、应用和合并,plyr()的输入可以是数组、数据框、列表,输出也可以是数组、数据框、列表,还可以不输出任何结果,因此可以极大的减少数据转换的负担。Plyr包中,数据处理函数的名称由5个字符组成,格式为{adl}{adl_}ply。第一个字符根据输入数据的类型,可以时a{数组}、d{数据框}、l{列表};第二个字符表示输出的类型,与上述一致,不过可以有无输出“_”我们先安装plyr函数。

2024-03-18 20:59:48 993

原创 第五章:数据操作Ⅱ:数据处理及加工 第一节:使用SQL处理数据

我们可以使用sqldf包来实现使用mySQL处理数据,它可以减少数据转换的麻烦,使SQL语句用户更容易访问数据,我们可以借助sqldf包,在给出SQL命令后,自动生成Schema,并将数据加载到表格,然后执行SQL语句,并且,如果SQL的执行结果会被再次加载到R,由于该处理过程是自动进行的,所以用户不必安装数据框并设置环境。sqldf默认支持sqlite,因此在sqldf中可以适当使用索引以提升速度,并且,由于采用了基于数据库的技术,能够大大提高程序的运行速度。安装完毕以后,我们可以。

2024-03-18 15:17:03 508

原创 第四章:数据操作Ⅰ 第十三节:与MySQL联动

注意:在选择账户界面时,我们除了要设置root用户的密码,同时需要点击add User来添加一个rprogramming用户来当作与R语言链接的数据库账户。链接完毕后,我们在MySQL command line client中输入以下代码来将数据框权限赋予给rprogramming用户。之后,我们需要在计算机环境变量的用户变量里添加变量名MySQL_HOME ,并且将其值变为MySQL Server的地址,我们可以使用MySQL数据库来保存R的数据,或者可以借助数据框的强大功能协助R进行数据处理。

2024-03-17 22:33:32 747 1

原创 第四章:数据操作Ⅰ 第十二节:更易处理的数据表现形式

Tidy Data是一种数据保存方式,操作十分方便,容易进行建模和可视化,其定义如下:各变量相当于1列,每个观测对应1行,1个观测类型形成1个表。我们可以使用stack(),unstack()函数,分析表现形式的数据与Tidy Date形式的数据之间进行转换。当然,我们也可以对已经是Tidy Data的数据进行复原成原来数据。我们可以使用stack()函数进行数值转换。由此我们可以针对其产生的数据进行计算平均值。我们使用如下数据进行操作。

2024-03-16 20:21:37 393

原创 第四章:数据操作 Ⅰ 第十一节:分组运算

doBy()包中的函数先将数据分组,然后再施加特定运算,我们可以使用aggregate()函数进行更为便利的分组运算。不过相对tapply()函数来说,aggregate()函数会更简单。例如,我们计算鸢尾花品种的Sepal.Width平均值。当然,我们也可以使用tapply()函数计算平均值。

2024-03-16 19:52:16 343

原创 第四章:数据操作Ⅰ 第十节:查找符合条件的数据索引

对于从给定数据中查找符合条件的数据时,我们可以使用前面介绍的subset()函数用于获取符合条件的数据本身,不过有时候,我们可以利用which()、which.max()、which.min()函数来获取符合条件的数据的索引。根据多种参数创建和选择模型的过程中,可以使用上述函数,例如在建立机器学习模型时,将模型的似然值保存到向量后,使用which.max()函数查找似然值。Which.min()与which.max()函数从给定向量中查找保存最小值或最大值的索引。

2024-03-14 11:34:43 494 1

原创 第四章:数据操作Ⅰ 第九节:访问数据框中的列

我们可以使用with()、within(),attach(),detach()等函数访问数据框中的列With()、within()将显示数据视为环境,以评估表达式。而attach()、detach()采用修改名称搜索路径的方式。

2024-03-14 11:18:58 590

原创 第四章:数据操作Ⅰ 第八节:数据排序

使用sort()与order()函数可以对数据进行排序,sort()函数直接对给定数据进行排序,order()函数返回排序后数据的原始位置。

2024-03-12 11:17:51 372

原创 第四章:数据操作Ⅰ 第七节:数据拆分与合并

使用数据拆分函数可以选取符合指定条件的数据,同时使用数据合并函数可以将拆分的数据进行再次合并。

2024-03-12 10:53:58 536

原创 第四章:数据操作Ⅰ 第六节:数据分组并调用函数

数据分析中,对全体数据调用函数进行处理的情形并不多见,更多的是先将全体数据进行分组,然后针对每个分组调用函数进行处理,因此我们这里学习使用doby包进行数据分组在使用之前,我们需要安装doby包才行。

2024-03-11 11:12:48 1247

原创 第四章:数据操作Ⅰ 第五节:apply系列函数

在R语言中,apply系列函数用于向量、矩阵、数据框应用指定函数,并返回函数应用结果值,这些函数会一次性地对整体数据施加函数运算,采用的是向量计算方式,所以执行速度非常快。

2024-03-11 09:32:31 1260 1

原创 第四章:数据操作Ⅰ 第四节:合并数据框的行和列

我们可以使用rbind()和cbind()函数分别用于按行和按列合并给定向量、矩阵、数据框,并创建新矩阵或者数据框。

2024-03-08 20:26:04 391

原创 第四章:数据操作Ⅰ 第三节:读写对象文件

我们在使用多种算法对数据进行长时间处理后,可以将这些中间处理结果保存到文件,这样以后进行相同处理的时候,就不用进行从头计算。在R语言中,我们可以使用save(),load()等函数进行读取和保存文件。

2024-03-07 11:07:16 494

原创 第四章:数据操作Ⅰ 第二节:读写CSV文件

有时候在使用read.csv()读入数据的时候,由于出现了NA或者NIL等字符串,R语言会默认将其转化为因子或者字符串,导致整个列被转化为因子或字符串,因此我们可以使用na,string进行转换。R在读取数据时,数字会被读取为数值型数据,但是读取字符串时,会默认将数据读取成为因子类型,但是我们并不需要,因此将其设置为F即可。使用read.csv函数,可以将CSV文件读入数据框,而使用write.csv()函数,则可以将数据框保存到CSV中。我们使用read.csv()的时候,其会返回一个数据框。

2024-03-07 10:37:41 673

原创 第四章:数据操作Ⅰ:基于向量的处理与外部数据处理 第一节:读文件

一.R获取数据的三种途径(一)利用键盘输入数据(初始数据如下)1.使用edit召唤允许手动输入的文本编辑器来修改,但是首先必须要先定义变量,再用edit修改变量,否则修改后的数据无法保存(以下为未保存变量情况)输出后结果,显示原始数据未保存声明变量后保存的结果(以x为变量)输出后结果,显示已经保存2.或者可以使用fix()函数直接修改数据,这样也可以直接保存(以修改第一行数据为例)输出结果,修改的数值得以保存3.直接读取剪贴板上的数据具体格式如下。

2024-03-06 09:59:29 488

原创 第三章:R语言编程 第六节:模块模式

3.由于模块用户无法触碰模块内部结构,只能调用其暴露在外的函数,所以模块制作者可以随意修改函数内部结构和模块中的数据结构,只要保证修改后的——用户调用那个函数时能够得到与以前相同的结果。2.其次,因为只能借助实现定义的函数访问模块内部数,所以可以有效防止不了解模块内部数据结构的用户对数据进行误操作,避免对数据造成损伤。1.因为无法从外部访问数据,所以很好的隐藏了内部实现,说人话就是无需考虑数据在模块内部是如何保存的。模块是一种结构,由无法从外部访问的数据以及操纵这些数据的函数组成,是标准化代码编写技术。

2024-03-06 09:43:02 863

原创 第三章:R语言编程 第五节:值传递&对象不变性

这则代码实际上进行的步骤是先复制a,创建新对象a',然后向对象a'添加属性b,再将c(1,2,3)填充到b,最后让变量名指向a'。如果我们想让函数内部的改动影响到函数外部,则需要在函数f()内部用返回值修改语句,然后再将函数的返回值的修改结果赋值给原来的变量。在R语言中,一切皆为对象,同时在调用函数的时候也采用值传递的方式,即作为参数的对象会被复制,然后将副本传递给函数。因此我们可以得出结论,除了特殊对象以外,对象状态不会被函数直接修改,无论哪种函数能能保证参数传递的对象不被修改。:这一部分我觉得结合。

2024-03-05 10:30:20 597

原创 第三章:R语言编程 第四节:作用域

一段程序代码种用到的名称(如变量名)并不总是有效的,而限定该名称可用性的代码范围就称为作用域,R语言采用词法作用域,也成为静态作用域,只有定义变量的语句在内部才能访问该变量,外部变量可以被内部变量访问。如果我们尝试在内部语句块中修改外部语句块声明的变量值时,由于内部语句块优先于外部语句块,所以使用<-运算符赋值时,被赋值的对象会被视为内部语句块的对象,即在内部语句块内创建一个新a变量。在嵌套函数中,如果g()并未声明变量a,R语言会从包裹g()函数的f()函数中查找变量a。

2024-03-05 10:16:28 796

原创 第三章:R语言编程 第三节:运算

一、数值运算在R语言中,由如下几个运算符和函数实现数值运算根据R语言的特性,使用运算符可以对大批量数据进行同时相加减,如下列例子将1~5的各个数据进行乘2再加1的操作二、向量运算向量运算是针对全体数据的运算,因此可以很方便的处理数据同时,我们也可以进行向量间的相互运算在向量运算中,我们可以使用==或者&来计算向量中每个元素的的T或F值在R中默认支持基于向量的运算,例如sum()求和函数、mean()平均数函数、median()取中位数函数。

2024-03-04 15:29:23 842

原创 第一章:R语言与Rstudio 第二节:R包

一、概念R包是多个函数的集合,具有详细的说明和示例,也有R包中只有数据没有函数,包含:函数、数据、帮助文档二、R包的获取与安装。

2024-03-04 15:13:25 1310

原创 第三章:R语言编程 第一节&第二节:R的特征与流程控制

(1)操作数据的方法,其它编程语言通常使用for语句来逐行读入并处理数据,但R则更多使用向量进行计算,对全体数据进行统一处理。(2)缺失值NA,在R语言中,未初始化的变量保存着NULL值,此外,R中还存在NA值,表示未观测,或者未记录的数据。3.repeat循环语句,主要是在循环中利用break语句判断是否退出,类似于do while语句,前面输出的结果为T的情况,后面为F的情况,似乎有点类似于三目运算符。(3)对象的不变性,在R语言中,大部分对象的值无法修改。1.for循环,循环之道设定的数值时结束。

2024-03-03 14:31:53 635

原创 第二章:数据类型 第七节:类型判别&类型转换

(3)对于上述as.typename()转换函数,它的支持性会比正常的typename()函数小一些,例如下面例子,如果使用as.factor()转换函数将数据转为因子,会因为字母表顺序的原因导致因子水平"f"在"m"的前面,因为as.factor函数只接受带待转换为因子的对象作为参数,因此,无法实现在函数内修改因子水平,此时需要使用到factor函数进行转换。在实际数据处理中,我们往往会遇到需要数据转换的情况,为此我们需要使用专门的数据转换函数来实现对应数值的转换。在使用函数的时候,会输出转换的数据。

2024-03-03 14:28:41 444

原创 第二章:数据类型 第六节:数据框

(1)head(对象,n=返回结果值大小,默认为6)函数,用于返回对象的开头n个数据,用于数据很大的情况,例如x=1:1000的时候会直接输出1~1000的值,这边直接通过head输出流前六行数值。列表中的元素是向量,这些向量构成数据框的列,每一列必须具有相同的长度,所以数据框是矩形结构,而且数据框的列必须命名。(2)tail(对象,n=返回结果值的大小,默认为6),跟和head同理,这是返回末尾的数据。针对定义好的数据框,如果我们想要更新某一列的数据,使用d$colname(列名)<-数据。

2024-03-02 15:23:22 864

原创 第二章:数据类型 第五节:数组

数组可以使用array(向量、维度、维度名称)函数创建,这边创建一个3x4的数组,则将dim中的维度设置为c(3,4)上述结果中,“,,1”、“,,2”、“,,3”均指2*2*3的最后一维度,即以最后一维度为高输出每一层的结果。同样,我们可以利用数组创建三维乃至多维数组,以下数组可以简单理解为长宽高。数组不同于其他语言的数组,是多维向量,至少要三维或者更多。我们亦可以使用dim()函数来返回一个数组的维度。我们利用索引可以返回空间一个维度的数据。同时也可以使用索引,名称等进行访问。

2024-03-02 15:06:19 371

原创 第二章:数据类型 第三节:列表

一、列表的概念列表顾名思义就是用来存储很多内容的一个集合,在其他编程语言中,列表一般和python中的字典是等同的,但在R语言中,列表确实R中最为复杂的一种数据结构,也是非常重要的数据结构列表就是一些对象的有序集合。列表中可以存储若干向量、矩阵、数据框,甚至其他列表的组合二、创建列表我们可以使用list()参数创建列表,使用list函数可以创建列表,list(对象1,对象2,对象3······),可以为每一个对象都添加对应的名称,格式为名字=对象1·····。

2024-03-02 14:58:21 518

原创 第六章:R语言绘图 第一节:绘图基础

title()main参数用于指定主标题。sub参数用于指定副标题。xlab参数用于指定x轴标签。ylab参数用于指定y轴标签x <- 1:10y <- x^2#定义新坐标轴名称时,原来的坐标轴名称需要变为空,否则会导致的新旧坐标轴重合axis()函数:side参数用于指定坐标轴的位置(1:底部,2:左侧,3:顶部,4:右侧)。at参数用于指定刻度线的位置。labels参数用于指定刻度线的标签。其他参数如posltycollastck等可根据需要进行设例如:y <- x。

2024-03-01 16:50:40 1264

原创 第二章:数据类型 第四节:矩阵

(3)如果只给出一个行数或者列数,R语言会自动进行分配,同时通过byrow参数控制按行排列还是按列数排列,默认按F列排列,T为按行排列。(1)我们可以使用简单的+-*/来对矩阵运算,这里也是相应位置的运算,注意矩阵运算需要两个矩阵行列数都相同,否则会报错。(1)可以使用matrix()创建矩阵两个维度,Matrix(向量,nrow=行数,ncol=列数)(1)我们可以直接使用二维数组的形式来访问矩阵中的数据(矩阵如上图)(4)使用nrow()和ncol()参数我们知道矩阵的行列数目。

2024-02-28 15:38:32 510

原创 第二章:数据类型 第二节:向量

2.向量(vector)是R中最重要的一个概念,它是构成其他数据结构的基础,与数学中向量概念是不同的,类似于数学上的集合概念,由一个或多个元素构成。(3)如果我们需要一个作为索引量的向量时,我们可以使用1:NROW()函数进行创建,其中1可以被替换,替换为几就从几开始。使用x%in%y,对X里的每一个元素进行判断,判断是否每一个数值在y里,输出的向量长度由x即前向量说了算。如果两组数据长度不同,则输出长的。我们也可使用NROW()参数获取向量的长度,这个函数的意义是将向量转化为n行1列的矩阵,并返回长度。

2024-02-28 15:16:13 1005

原创 第二章:数据类型 第一节:变量

前言数据结构是计算机存储、组织数据的方式。数据结构是指相互之间存在一种或者多种特定关系的数据元素集合数据框、矩阵、列表、数组普通数据结构:向量、标量、列表、数组、多维数组特殊数据结构:perl中的哈希,python中的字典、c语言中的指针等R对象对象:object,它是指可以复制给变量的任何事物,包括常量、数据结构、函数,甚至图形。对象都拥有某种模式,描述了此对象是如何存储的,以及某个类R中数据结构向量,标量,矩阵,数组、列表、数据框、因子、时间序列等一.标量(一)赋值规则与命名规则。

2024-02-27 15:55:49 1068

原创 第一章:R语言与Rstuido 第一节:R语言介绍与Rstudio

R语言时一种编程语言,也是统计计算和绘图的环境,它汇集了许多函数,能够提供强大的功能,是一种向量化编程环境,R语言结合了:开源,可扩展的环境;1.保存+命名,离脚本编辑器最近的保存,然后点关闭关闭文件,脚本、数据、图片的默认保存位置为你project保存的位置,即工作目录。(2)使用#为脚本添加注释,让自己和代码协作者了解代码,R语言会自动忽略“#”右边所有内容。2.报错(error):检查命令,检查环境,修正后重新运行,并不一定代码错了。8.进一步选择,不回答就一直问,后面的代码就无法运行。

2024-02-27 15:30:19 1361 1

原创 类和对象 第六部分第五小节:继承同名成员处理方式

当子类与父类拥有相同名称的成员函数,子类会隐藏父类中同名成员函数,加作用域可以访问到父类中同名函数。问题:当子类与父类出现同名的成员,如何通过子类对象,访问到子类或父类中同名的数据?(一)同名成员属性处理方式。(二)同名成员函数调用。额外:同名成员函数重载。

2024-02-17 14:53:03 449

原创 类和对象 第六部分第四小节:继承中构造和析构函数

子类继承父类以后,当创建子类对象,也会调用父类的构造函数。

2024-02-17 14:33:04 395

原创 类和对象 第六部分第三小节:继承中的对象模型

结果表明:父类中所有非静态成员属性都会被子类继承下去,父类中私有成元函数是被编译器给隐藏了,因此是访问不到的,但确实被继承下去了。在开始界面找到VS文件夹,打开其中的开发人员命令提示符(developer commend prompt for VS)cl / d1 reportSingleClassLayoutson 源1.cpps。我们在命令提示符中跳转盘符到对应的文件存放盘,格式为“盘符:”问题:从父类继承过来的成员,有哪些属于子类对象中。然后,我们通过cd命名指向对应的文件夹。

2024-02-08 13:53:45 453

原创 类和对象 第六部分第二小节:继承方式

保护继承(除了原本不可访问以外,全部变为保护权限)私有继承(除了原本不可访问以外,全部变为私有权限):继承的语法:class 子类 继承方式:父类。公共继承(全部继承,不改变)

2024-02-08 13:45:11 355

原创 类和对象 第六部分 继承 第一部分:继承的语法

派生类中的成员,包含两大部分。一类是从基类中继承过来的,一类是自己增加的成员,从基类继承过来的表现其共性,而新增的表现其个性。我们可以发现,下级别的成员除了拥有上一级的共性,还有自己的特性,这个时候,我们可以讨论利用继承的技术,减少代码重复代码,这边不理解就参考《马原》里事物的共性和个性的区别进行理解。继承语法:class 子类 :继承方式 父类。直接这样写会导致代码过于繁琐,重复率太高。代码案例:例如用c++编写一个网页。可见,代码量减少后显示内容不变。继承是面向对象的三大特性之一。

2024-01-30 16:37:56 737

原创 类和对象 第五部分第六小节:函数调用运算符重载

2.仿函数没有固定写法,非常灵活。代码案例:打印输出仿函数。代码案例:实现加法运算。

2024-01-30 16:20:51 427

原创 类和对象 第五部分第五小节:关系运算符重载

作用:重载关系运算符,可以让两个自定义类型对象进行对比操作。初始代码操作:判断p1和p2是否相等。如果为其它关系运算符则以此类推。

2024-01-29 14:54:31 440

原创 类和对象 第五部分第四小节:赋值运算符重载

原因是p2赋值给p1的时候,只复制了值而没有复制地址,仅仅实现浅拷贝,导致被delete后,内存地址给清空了两遍,发生错误。如果类中有属性指向堆区,做赋值操作时也会出现深浅拷贝问题。4.赋值运算符“operator=”,对属性进行值拷贝。3.默认拷贝沟早函数,对属性进行值拷贝。1.默认构造函数无参,函数体为空。2.默认析构函数无参,函数体为空。代码增添:添加成员函数。代码运行后会出现错误。

2024-01-29 14:50:10 496

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除