1.简单会话

> x<-c(1,2,4)

> x

[1] 1 2 4

R语言的标准赋值运算符是<-。也可以用=,不过不建议用它,有些情况会失灵。其中c表示连接(concatenate)

> q<-c(x,x,8)

> q

[1] 1 2 4 1 2 4 8

取q中的某个元素,R下标是从1开始的。

> q[2]

[1] 2

利用现有函数求均值,方差

mean(q)

sd(q)#“#”为注释符号

2.函数入门:

创建一个计算计数个数的函数

> oddcount<-function(x){

k<-0

for(n in x){

if(n%%2 ==1) k<-k+1

}

return(k)

}

调用函数oddcount(c(1,2,3,-1,5))

> oddcount(c(1,2,3,-1,5))

[1] 4

3.R语言中的数据结构

  • 向量

R语言中,把标量或单个数字,作为一个一元向量。很多操作,函数都是针对向量的。

x<-c(5,1,13,2)
> x
[1]  5  1 13  2

length(x)#返回向量x的长度
[1] 4

mode(x)#返回向量的类型
[1] "numeric"

R的一个向量的所有元素都应该属于同一类数据类型,否则R会进行强制转换

> v<-c(4,67,"abc")
> v
[1] "4"   "67"  "abc"

R允许如下创造空向量,也允许你向任意的下标赋值。

> a<-vector()
> a
logical(0)
> a[3]=1
> a
[1] NA NA  1
> a[10]=32
> a
[1] NA NA  1 NA NA NA NA NA NA 32

  • 字符串

> wq<-c("dasda","dasda","q","12")#生成字符串向量
> wq
[1] "dasda" "dasda" "q"     "12"

> mode(wq)
[1] "character"

> u<-paste('a','b','c')#连接字符串
> u
[1] "a b c"

> v<-strsplit(u,"")#拆分字符串
> v
[[1]]
[1] "a" " " "b" " " "c"

>

  • 矩阵

rbind,把两个行向量结合为一个矩阵,(另一个函数式cbind(),把若干个列结合成一个矩阵)。

>  m<-rbind(c(1,4),c(2,2))#rbind=row band(按行绑定)
>
> m
     [,1] [,2]
[1,]    1    4
[2,]    2    2

矩阵乘法符号  %*%

> m%*%c(1,1)
     [,1]
[1,]    5
[2,]    4

提取矩阵的行,列:

> m[,2]#提取矩阵的列
[1] 4 2
> m[1,]#提取矩阵的行
[1] 1 4

  • 列表

与向量不同,列表中各项内容可以属于不同的数据类型。用$访问列表中的元素

> x<-list(u=2,v="ac")
> x
$u
[1] 2

$v
[1] "ac"

> x$u#提取列表中的数据
[1] 2

  • 数据框

一个典型的数据集包含多种不同类型的数据,例如一个员工数据集里有字符串(员工姓名),数字(工资)等。这时候不能用矩阵,因为他混合了多种数据类型,应该用数据框。数据框实际上就列表。

> d<-data.frame(list(kids=c('ross','joey'),ages=c(12,13)))#定义数据框
> d
  kids ages
1 ross   12
2 joey   13
> d$ages
[1] 12 13

    R语言是一门面向对象的编程语言,对象是类的实例。数据存储在对象中,在R中,全部都是对象,从简单的数字到函数,或者复杂的数据结构。每一个对象都会属于一个类(class).

    R有许多提前定义好的类和与之相关的函数。我们可以以此为基础创造新的类。

    类需要用在泛型函数中。例如plot()就是一个泛型函数,它和根据参数对象来画出适合的图像(概念有点类似于c++的重载,多态性(polymorphism))

4获取帮助

  • help(plot)#在线获得plot函数的帮助
  • example(plot)#获得plot()函数的例子
  • help.search('normal')#如果不知道搜索什么函数,可以搜索关键字

5一些细节:

  • R语言区分大小写

 

本人水平有限,怀着分享学习的态度发表此文,欢迎大家批评,交流。感谢您的阅读。

欢迎转载本文,转载时请附上本文地址:http://www.cnblogs.com/Dzhouqi/p/3414088.html

另外:欢迎访问我的博客 http://www.cnblogs.com/Dzhouqi/

R语言笔记:快速入门的更多相关文章

  1. R语言笔记

    R语言笔记 学习R语言对我来说有好几个地方需要注意的,我觉得这样的经验也适用于学习其他的新的语言. 语言的目标 我理解语言的目标就是这个语言是用来做什么的,为什么样的任务服务的,也就是设计这个语言的动 ...

  2. R语言笔记4--可视化

    接R语言笔记3--实例1 R语言中的可视化函数分为两大类,探索性可视化(陌生数据集,不了解,需要探索里面的信息:偏重于快速,方便的工具)和解释性可视化(完全了解数据集,里面的故事需要讲解别人:偏重全面 ...

  3. MongoDB学习笔记:快速入门

    MongoDB学习笔记:快速入门   一.MongoDB 简介 MongoDB 是由C++语言编写的,是一个基于分布式文件存储的开源数据库系统.在高负载的情况下,添加更多的节点,可以保证服务器性能.M ...

  4. Bootstrap笔记--快速入门

    首先是Bootstrap的简介: 业余了解:下面这个网址可以查询IP地址的地理位置 下面学习:(具体可以参考Bootstrap中文网) 栅格系统 Bootstrap 提供了一套响应式.移动设备优先的流 ...

  5. R语言笔记完整版

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

  6. 初探R语言——R语言笔记

    R语言使用 <-  赋值 # 作为注释符号 c()函数用于作为向量赋值,例如age<-c(1,2,3,4,5) mean()用于求向量的平均值 sd()求向量的标准差 cor(a,b)求a ...

  7. R语言笔记5--读数据

    1.读文本文件数据 (1)先设置工作目录,把文本文件放于该目录下 备注:在记事本里写完数据后,按一下回车,负责在R语言中出现错误 (2)读剪贴板 文本或EXCEL的数据均可通过剪贴板操作 (3)读ex ...

  8. R语言笔记1--向量、数组、矩阵、数据框、列表

    注释:R语言是区分大小写的 1.向量 R语言中可以将各种向量赋值为一个变量,这种赋值操作符就是等号“=”,也可以使用“<-”. 1)产生向量 (1)函数c() 例如:x1=c(2,4,6,8,0 ...

  9. 学习swift语言的快速入门教程推荐

    随着苹果产品越来越火爆,苹果新推出的swift必定将在很大程度上代替oc语言.学好swift语言,对于IOS工程师来讲,已经是一门必备技能. 有一些比较好的英文版教程,值得学习. 1. Swift T ...

随机推荐

  1. 《APUE》第6章笔记

    这一章主要介绍了口令文件和组文件的结构和一些围绕这些结构的函数. 口令文件即passwd就是在/etc/passwd中可以查阅.其结构是: 上图四个平台能支持的就用黑点表示. 因为加密口令这一项放在p ...

  2. linux系统时间修改及同步

    时间修改date 月日时分年.秒date -s可以直接设置系统时间 比如将系统时间设定成1996年6月10日的命令如下.#date -s 06/10/96将系统时间设定成下午1点12分0秒的命令如下. ...

  3. PHP缓冲区强制及时输出

    string '{"multicast_id":4917012850725514945,"success":0,"failure":38,& ...

  4. 非关系型数据库SequoiaDB虚拟机下应用初探

    SequoiaDB是广州巨杉软件有限公司开发的一款新型分布式非关系型数据库.可应用于linux操作系统下.在虚拟机下试用了一下(操作系统Ubuntu),感觉不错,操控简单易上手,在此分享一下心得. 下 ...

  5. 用JS写的简单轮播特效

    效果如下 功能分析 1.每隔1秒换一张图片 2.鼠标移入停止切换.鼠标离开继续切换 3.鼠标移入到数字上面的时候,显示和数字对应的图片,并且停止切换,被选中的数字,背景显示橙色 4.鼠标离开数字,从该 ...

  6. Spark小课堂Week3 FirstSparkApp(RDD开发)

    Spark小课堂Week3 FirstSparkApp 问题:Java有哪些数据结构 大致有如下几种,其中List与Map是最重要的: List Map Set Array Heap Stack Qu ...

  7. what is the “handover” and "soft handover" in mobile communication system?

    Handover: 切换,属于移动通信网络中的技术术语. 所谓切换,就是指当移动台在通话过程中从一个基站覆盖区移动到另一个基站覆盖区,或者由于外界干扰而造成通话质量下降时,必须改变原有的话音信道而转接 ...

  8. Path of Equal Weight (DFS)

    Path of Equal Weight (DFS)   Given a non-empty tree with root R, and with weight Wi assigned to each ...

  9. Linked List Sorting (链表)

    Linked List Sorting (链表)   A linked list consists of a series of structures, which are not necessari ...

  10. Matlab生成.dll文件在.NET中加载失败与平台的关系及解决方案

    问题链接地址:http://bbs.elecfans.com/forum.php?mod=viewthread&tid=207995