R语言函数化编程笔记1

notes:有一个不错的网站叫做stack overflow,有问题可以从上面找或者搜索答案,会有大佬相助。

在github上面可以找到很多R的扩展包,如果自己额修改被接受,那么就会成为该包的贡献者。。

  1. R的编辑器

    一般会在Rstudio中编写一个脚本文件来执行多行代码,可以编写R脚本,Rmarkdown文档,网页等,或者C++源代码

  2. 常用快捷键

  • ctrl+enter组合键运行选中命令
  • ctrl+shift+S组合键执行当前文档,也就是依次执行当前文档中的所有表达式
  • Tap或者ctrl+space组合键展示匹配当前输入变量和函数的自动补齐列表
  • 单击行数边缘左侧设置一个断点,就是debug,下次执行这行的时候程序会停下来检查

3. 查看帮助文档的方式
在Help帮助窗格里面输入函数名能够直接找到
在console中输入函数名并按F1键
在console中输入“?函数名”并执行它

我感觉,我R语言函数编程这里在数据处理这里老老是出bug,我感觉应该是对于每个函数的数据类型使用不当。

因为每个对象都有其不同的类型和性质

4. 数据类型

4.1 向量

4.1.1 数值向量

4.1.2 逻辑向量

4.1.3 字符向量

4.2 给向量命名

可以通过names()获取向量中函数的名字

names(x)
## "a" "b" "c"

或者通过对向量赋予不同字符向量来更改元素名称

names(x)<-c("x","y","z")

4.2.1 提取向量的元素

[] 能够创建一个向量子集

[[]] 能够提取向量中的元素

4.2.2 识别向量类型

class(变量名)。具体的函数用法可以进行查询

4.2.3 强制类型转化

as.numeric()

as.data.frame()

as.character()

......很多。

4.3 矩阵

创建矩阵的函数:matrix,具体用法可以查询

为行和列命名

rownames(矩阵名)

colnames(矩阵名)

4.3.1 提取矩阵的子集

[] 还是这个框,挺好用的

4.4 数组

记住array函数吧,比较简单

4.5 列表(list)用的比较多

因为不用类型的数据均可存放在一个列表中

可以使用$符号来提取列表中的元素

4.6 数据框

一般平时用到的面板数据可以看成一个数据框(不过这样子说不太专业奥)

persons<-data.frame(
Name=c("ken","ally","jj"),
Gender=c("Male","Female","Female"),
Age=c(24,25,23),
Major=c("finance","art","cs"))
persons
Name Gender Age Major
1 ken Male 24 finance
2 ally Female 25 art
3 jj Female 23 cs

4.6.1 提取数据框子集

同样可以用$符号,或者用[[]]来提取某一位置的

4.6.2 数据框中的实用函数

summary()展示一个汇总表,比较直观

rbind()按行合并,可以向数据框中添加一些行

rbind(persons,data.frame(Name="july",
Gender="Female",
Age=23,
Major="cs")
Name Gender Age Major
1 ken Male 24 finance
2 ally Female 25 art
3 jj Female 23 cs
4 july Female 23 csex

cbind()按列合并,可以向数据框添加一些列

expand.grid()可以生成一个包含所有列值组合的数据框(这个以后看看能不能有妙用)

> expand.grid(type=c("A","B"),class=c("M","L","XL")
+ )
type class
1 A M
2 B M
3 A L
4 B L
5 A XL
6 B XL

R语言函数化编程笔记1的更多相关文章

  1. R语言函数化编程笔记2

    R语言函数化编程笔记2 我学过很多的编程语言,可以我写的代码很啰嗦,一定是我太懒了.或许是基础不牢地动山摇 1.为什么要学函数 函数可以简化编程语言,减少重复代码或者说面向对象的作用 2.函数 2.1 ...

  2. R语言函数化学习笔记6

    R语言函数化学习笔记 1.apply函数 可以让list或者vector的元素依次执行一遍调用的函数,输出的结果是list格式 2.sapply函数 原理和list一样,但是输出的结果是一个向量的形式 ...

  3. R语言函数化学习笔记3

    R语言函数化学习笔记3 R语言常用的一些命令函数 1.getwd()查看当前R的工作目录 2.setwd()修改当前工作目录 3.str()可以输出指定对象的结构(类型,位置等),同理还有class( ...

  4. R语言函数化学习笔记4

    条件语句和循环语句 当你说话时候用到了如果,此时条件出现了 举个条件函数的例子 sign_t<-function(x){ if(x>0){ return(1) }else if(x< ...

  5. R语言函数话学习笔记5

    使用Tidyverse完成函数化编程 (参考了家翔学长的笔记) 1.magrittr包的使用 里面有很多的管道函数,,可以减少代码开发时间,提高代码可读性和维护性 1.1 四种pipeline 1.1 ...

  6. R语言与机器学习学习笔记

    人工神经网络(ANN),简称神经网络,是一种模仿生物神经网络的结构和功能的数学模型或计算模型.神经网络由大量的人工神经元联结进行计算.大多数情况下人工神经网络能在外界信息的基础上改变内部结构,是一种自 ...

  7. #r语言(二)笔记

    #r语言(二)笔记 #早复习 #概述:R是用于统计分析.绘图的语言和操作环境 #对象: #数据类型--统称为对象 #向量(vector):用于存储数值型.字符型或逻辑型数据的一维数组. #定义向量: ...

  8. R语言与显著性检验学习笔记

    R语言与显著性检验学习笔记 一.何为显著性检验 显著性检验的思想十分的简单,就是认为小概率事件不可能发生.虽然概率论中我们一直强调小概率事件必然发生,但显著性检验还是相信了小概率事件在我做的这一次检验 ...

  9. 【R笔记】R语言函数总结

    R语言与数据挖掘:公式:数据:方法 R语言特征 对大小写敏感 通常,数字,字母,. 和 _都是允许的(在一些国家还包括重音字母).不过,一个命名必须以 . 或者字母开头,并且如果以 . 开头,第二个字 ...

随机推荐

  1. java设计模式学习笔记——里氏替换原则

    oo中的继承性的思考和说明 1.继承包含这样一层含义:父类中凡是已经实现好的方法,实际上是在设定规范和契约,虽然它不强制要求所有的子类必须遵循这些七月,但是如果子类对这些已经实现的方法任意修改,就会对 ...

  2. 使用 Apache James 3.3.0(开源免费) 搭建外网电子邮件服务器(基于 Windows + Amazon Corretto 8)

    对于邮件服务器的安装,请先参阅: 使用 Apache James 3.3.0(开源免费) 搭建内网电子邮件服务器(基于 Windows + Amazon Corretto 8) https://www ...

  3. 有关版本控制--SVN

    什么是版本控制? 这个之前有记录过相关的内容 版本管理就是管理更新的历史记录, 它给我们提供了一些在软件开发过程中必不可少的功能,例如: 记录一款软件添加或更改源代码的过程 回滚到特定阶段,恢复误删除 ...

  4. VMvare桥接网络连接不上解决办法

    记一次学习中的突发状况.由于本人的pc时长要在不同的网络中进行切换,ip地址一般都是不固定的,所以我使用虚拟机的时候一般使用的都是让VMvare自动识别网络环境.直到今天遇到一种突发情况,VMvare ...

  5. 解决在jsp页面中使用jstl无法遍历request域中list集合的问题

    解决在jsp页面中使用jstl无法遍历request域中list集合的问题 1. 前言 ​ 最近在写一个很简单的Javaweb项目,里面需要将request域中的list集合加载到jsp页面,我使用e ...

  6. mongDb在node中的操作

    mongoDb 干嘛的:数据库,nosql(非关系型|缓存型) 场景:解决大规模数据集合多重数据种类 下载:https://www.mongodb.com/download-center 安装:htt ...

  7. Python基础之程序暂停

    当我们执行某些程序时,由于机器速度很快导致肉眼无法直接看到执行结果时程序便停止运行.这时候我们迫切需要在程序中暂停,专业术语叫做阻塞.下面列举几种常用的程序暂停方法: input()用法:直接在欲等待 ...

  8. P2024 NOI2001 种类冰茶鸡

    展开 题目描述 动物王国中有三类动物 A,B,C,这三类动物的食物链构成了有趣的环形.A 吃 B,B 吃 C,C 吃 A. 现有 N 个动物,以 1 - N 编号.每个动物都是 A,B,C 中的一种, ...

  9. Unity容器实现AOP面向切面编程

    为什么要有AOP 需求总是变化的,比如经常会对一些方法后期增加日志.异常处理.权限.缓存.事务的处理,遇到这种情况我们往往只能修改类. 为了应对变化,我们常常使用设计模式解决,但是也有其局限性:设计模 ...

  10. Python学习笔记———递归遍历多层目录

    import os #得到当前目录下所有的文件 def getALLDir(path,sp = ""): filesList = os.listdir(path) #处理每一个文件 ...