R基础学习

The Art of R Programming

1.seq
产生等差数列:seq(from,to,by) seq(from,to,length)
for(i in 1:length(x)) 当x为null时 i会依次取 1,0
for(i in seq(x)) 能避免x为null时产生错误。 seq(x) 会产生 1:length(x)的向量

2.rep
rep(x,n) x整体重复n次
rep(x,each=m) x的每个元素依次重复m次
rep(x,y) x中每个元素按照对于的y的元素重复 向量x与y的长度必须相等。

3.想要读写向量中的元素,必须对向量提前声明。因为R是函数式语言,读写都是通过函数来实现的,如果R事先不知道x是一向量,那么函数将没有执行的对象。

4.可以预先给向量分配内存空间,避免每次使用时重新分配,减慢代码运行速度。
for(i in seq(x)) r<-c(r,i) 每次调用都会给新的向量r分配内存
r<-vector(length=n) for(i in seq(x)) r[i]<-i 事先给r分配一个合适的内存大小,每次调用时就不用重新分配内存

5.cumsum(x) 计算向量x的累计和 结果向量的第i个元素是x的前i个元素的和。 cumulative sums

6. round(x) 四舍五入函数
floor(x) 向下取整

7.NA 存在但未知的值 na.rm=T 移除NA 未移除NA时,NA 作为存在的数,计算时会被计算在内。
NULL 不存在的值 R遇到NULL会主动跳过。

8.subset

9.which(x>2) 返回向量或矩阵x中符合条件的元素的索引,x如果是矩阵,则返回的是将x看成向量时符合条件的元素的位置。
which(x==2,arr.ind=T) 当x为矩阵时,返回的是符合条件的元素的行号和列号。

10.ifelse(a,x,y) a[i]为真时返回x[i],否则返回y[i]。x,y不够长时,自动补齐。

11.当对逻辑值T和F进行运算时,把T当做1,F当做0进行运算。

12.diff(x,k) 差分 错k位相减 :x[i+k]-x[i]

13.符号函数sign y<- sign(x) x的第i个元素为正,y[i]=1; x的第i个元素为负,y[i]=-1;x的第i个元素为0,y[i]=0

14. x<-1:4 产生的是整数;y<-c(1,2,3,4) 产生的是浮点数。 identical(x,y) FALSE identical用于判断两个对象是否完全相同(包括数据类型)
y<-c(1:4)产生的是整数

15.rbind(a,b) 将a,b按照行组合形成矩阵
cbind(a,b) 将a,b按照列组合形成矩阵
避免在循环中重复创建矩阵,每次进行矩阵内存分配将降低程序速度;应该一开始就定义一个大矩阵,在循环过程中逐行或逐列的进行赋值。

16.dim(x) x的维数 nrow(x)x的行数 ncol(x)x的列数

17.从矩阵中单独的取出一列或者一行时,结果的数据类型会变成向量。 a<-x[,3] a的类型为向量
为避免矩阵降维变成向量 a<-x[,3,drop=F] 强制转化成矩阵 as.matrix(x)
从数据框中取出一列时也会变成向量,取一行(元素数据类型不同时)会变成列表 a<-x[,3,drop=F]

18.a为一列表
a[2] 返回第二个组件,类型为列表 , a[1:4] 返回第1至第4个组件
a[[2]] 返回第二个组件,类型为第二个组件自身的类型 [[ ]] 每次只能取出一个组件

19. 删除列表组件时直接将其赋值为NULL
c(list1,list2,list3) 列表拼接
lenght(list4) 返回列表list4的组件个数

20.数据框会将字符向量默认为因子类型
a<-data.frame(name,age,stringsAsFactors=F)

21.merge(x,y,by.x='name',by.y='names')
合并数据库x,y,只有两个匹配列中完全相同的才会被显示。 by.x与by.y用于标示两个数据框中含有相同信息但是名称不同的两个匹配列。

22.substr(x,a,b) 截取x的第a位至第b位,结果为字符串。

23.split(x,f)
x为向量或者数据框,f为因子或者因子的列表。按照因子向量f对x进行分组,返回结果为列表。

24. by(x,factor,f)
类似于tapply ,但是此处x可以为矩阵或者数据框,f为需要多列数据的函数(如拟合)

25.table(x) x为因子向量或因子列表,统计各因子出现的次数

26.order(x) 对向量x进行排序,返回的是各元素在排序后的下标

27.cut(x,a) 按照x落在a是哪个区间上对x进行分类,生成因子。

28.next 结束当前的运行的一次循环(i=k),next后的语句不会执行;直接进入下一次循环(i=k+1)
break 直接跳出当前运行的这个循环体。

29.R不支持对非向量集合的循环
get('name') 接受一个代表对象名字的字符串参数,然后返回该对象的内容
将对象的名字组成向量用于for语句,在循环体内用get函数将由for语句中得到的对象名字转化为对象内容。
for(i in c('a','b','c') ) {
z<-get(i)
print( lm( z[,2]~z[,1] ) ) }

30. &,| 向量的逻辑运算,两个向量需要等长, 结果为一向量
&&,|| 标量的逻辑运算 当两个运算对象是向量时,只进行两个向量的第一个元素的逻辑预算作为结果

R基础学习的更多相关文章

  1. R基础学习(三)-- 简单练习(shiny+mysql+barplot)

    测试环境:win10+RStudio 提前准备: install.packages('shiny') install.packages('RMySQL') 数据表准备: 最终实现的界面效果如下:点击[ ...

  2. R基础学习(二)-- 连接sqlserver

    测试环境:win10+RStudio 三个步骤:(1)创建ODBC数据源:(2)install.packages('RODBC') :(3)编写连接测试脚本 (1)创建ODBC数据源 控制面板-> ...

  3. R基础学习(一)-- 连接mysql数据库

    测试环境:win10+RStudio (1)在Console加载两个插件 >install.packages('DBI') Installing package into ‘C:/Users/l ...

  4. R语言学习-基础篇1

    ###第一周:R基础 rm(list = ls())  #ctr+L###矩阵相乘,函数diag()a=matrix(1:12,nrow=3,ncol=4)b=matrix(1:12,nrow=4,n ...

  5. python入门到精通[三]:基础学习(2)

    摘要:Python基础学习:列表.元组.字典.函数.序列化.正则.模块. 上一节学习了字符串.流程控制.文件及目录操作,这节介绍下列表.元组.字典.函数.序列化.正则.模块. 1.列表 python中 ...

  6. python入门到精通[二]:基础学习(1)

    摘要:Python基础学习: 注释.字符串操作.用户交互.流程控制.导入模块.文件操作.目录操作. 上一节讲了分别在windows下和linux下的环境配置,这节以linux为例学习基本语法.代码部分 ...

  7. qml基础学习 Canvas画笔

    一.画布元素 自qt4.7发布qml以来,qml也在一直不断的完善中,在qt4时代使用qml时如果需要异形图,那我们只能让设计师来切图,这样的感觉是很不爽的,总感觉开发没有那么犀利.但是到了qt5这一 ...

  8. C#/.NET 基础学习

    初识C# C#是微软公司发布的面向对象的.运行于.NET Framework之上的高级程序设计语言.与Java有着明显不同,借鉴Delphi的特点,与COM(组件对象模型)直接集成,是微软公司 .NE ...

  9. opengl基础学习专题 (二) 点直线和多边形

    题外话 随着学习的增长,越来越觉得自己很水.关于上一篇博文中推荐用一个 学习opengl的 基于VS2015的 simplec框架.存在 一些问题. 1.这个框架基于VS 的Debug 模式下,没有考 ...

随机推荐

  1. render函数data参数中的model选项

    官方文档没有说, 但是编译v-model时, 是有model这个选项的, 例如: _c('el-input', { attrs: { "placeholder": "手机 ...

  2. 移动开发之【微信小程序】的原理与权限问题以及相关的简易教程

    这几天圈子里到处都在传播着这样一个东西,微信公众平台提供了一种新的开放能力,开发者可以快速开发一个小程序,取名曰:微信公众平台-小程序 据说取代移动开发安卓和苹果,那这个东东究竟是干吗用的?但很多人觉 ...

  3. Ajax+Struts2实现验证码验证功能

    ---------------------------------------------------------------------------------------------------- ...

  4. github pages + Hexo + 域名绑定搭建个人博客增强版

    概述 前面我们用github pages + Hexo 搭建了一个简单版的个人博客系统,但是里面的内容单调,很多功能不够完善,所以我们需要对yelle 的主题进行优化和完善.基本搭建请访问:http: ...

  5. Hadoop的RPC通信原理

    RPC调用: RPC(remote procedure call)远程过程调用: 不同java进程间的对象方法的调用. 一方称作服务端(server),一方称为客户端(client): server端 ...

  6. JAVA面向对象-----访问修饰符

    访问修饰符是用来控制类.属性.方法的可见性的关键字称之为访问修饰符. 1.public 一个类中,同一包中,子类中,不同包中 2.protected 一个类中,同一包中,子类中 3.default 一 ...

  7. android 网络获取json并且显示(2)

    1.将要的取得的json数据格式如下: 我们封装之前的类用google提供的JSONArray和JSONObject类对json字符串进行解析. 对于姚明显示每一条数据,我们封装了一个类如下: pub ...

  8. Android动态换肤(三、安装主题apk方式)

    相比之前免安装的方式,这种方法需要用户下载并安装皮肤apk,程序写起来比免安装的要简单很多,像很多系统主题就是通过这种方式实现的. 这种方式的思路是,从所有已安装的应用程序中遍历出皮肤程序(根据特定包 ...

  9. android连接打印机

    android连接  网络打印,主要使用socket连接设备,发送指令给设备. 首先要有设备的IP,端口号一般默认的是9100 //打印设备网络IP etIp.setText("192.16 ...

  10. 安卓高仿QQ头像截取升级版

    观看此篇文章前,请先阅读上篇文章:高仿QQ头像截取: 本篇之所以为升级版,是在截取头像界面添加了与qq类似的阴影层(裁剪区域以外的部分),且看效果图:   为了适应大家不同需求,这次打了两个包,及上图 ...