R 统计与作图---入门(一)数据类型

R语言,一种自由软件编程语言与操作环境,主要用于统计分析、绘图、数据挖掘。R本来是由来自新西兰奥克兰大学的Ross Ihaka和Robert Gentleman开发(也因此称为R),现在由“R开发核心团队”负责开发。R是基于S语言的一个GNU计划项目,所以也可以当作S语言的一种实现,通常用S语言编写的代码都可以不作修改的在R环境下运行。R的语法是来自Scheme。

R的源代码可自由下载使用,亦有已编译的可执行文件版本可以下载,可在多种平台下运行,包括UNIX(也包括FreeBSD和Linux)、Windows和MacOS。R主要是以命令行操作,同时有人开发了几种图形用户界面。---维基百科

我是走出校园之后才知道到有一门语言和开发环境叫R,在此之前我的编程认知范围仅限于于C/C++(VC++)和Matlab。它帮我完成了职场的第一件工作,画一个聚类热力图。此文介绍一下我学习使用R的经历和心得。

为什么是R? 因为它开源免费跨平台,对没钱的个人和不想付钱的公司是个好东西,对需要多样性工具的人是个好消息,对不用windows的程序员更是个好消息。但是由于它每次将所有数据读入内存,因此面对大数据显得力不从心。

1. 软件环境官方首页:http://www.r-project.org/

  安装方法不做描述, 官网上优详尽的描述和介绍

2. 基本知识

2.1 数据类型:

普通变量: 包括数字、字符等

> num=1
> num
[1] 1
> num=2.5
> num
[1] 2.5
> str="R"
> str
[1] "R"
> str="R language"
> str
[1] "R language"

矢量:基本和编程语言种的数组相同, 可以手动定义,可以函数生成,也可已由其他数据转换。
(1) 手动定义使用函数 c()

> vec=c(1,2,3)
> vec
[1] 1 2 3
> vec=c(1.2,3.5,4.1)
> vec
[1] 1.2 3.5 4.1
> vec=c("a","b","c")
> vec
[1] "a" "b" "c"
#整型和浮点型数据,整型将自动转化成浮点型数据
> vec=c(1,2.0,3.7)
> vec
[1] 1.0 2.0 3.7
#数字和字符串,数字将自动转换成字符串
> vec=c("a",6,7.9,"str")
> vec
[1] "a" "6" "7.9" "str"
# 访问矢量元素,下标从[1]开始,[0]中存储矢量的数据类型
> vec[0]
character(0)
> vec[1]
[1] "a"
# 普通变量可以看作是特殊的矢量,[0]
> num=2.5
> num[0]
numeric(0)
> num[1]
[1] 2.5
> str="R language"
> str[0]
character(0)
> str[1]
[1] "R language"

(2) 函数创建,常见好用的向量创建函数优seq,rep等

# seq(x,y,by=z) 创建以z为步长从x到y的向量,by缺省时z=1
> seq(3,8,by=2)
[1] 3 5 7
> seq(3,8)
[1] 3 4 5 6 7
#rep(x,y), 创建一个向量,将x重复y次
> rep(1,5)
[1] 1 1 1 1 1
# x本身也可以是矢量
> rep(c(1,3),5)
 [1] 1 3 1 3 1 3 1 3 1 3
# x:y, 创建重x到y步长为1的向量,同 seq(x,y)
> 1:5
> 1:5
[1] 1 2 3 4 5
# ?fun, 问号连接函数,查看函数用法
> ?rep

矩阵:矩阵类似二维数组,它的一行或者一列即是一个向量

# 使用matrix()生成一个3x4的矩阵,所有元素值为5, 具体用法参照?matrix
> mat=matrix(5,3,4)
> mat
     [,1] [,2] [,3] [,4]
[1,]    5    5    5    5
[2,]    5    5    5    5
[3,]    5    5    5    5
# 访问元素使用[x,y], 当x或y缺省时访问正行或整列,每行或没列均是一个向量
> mat[2,3]=2
> mat[2,3]=3
> mat
     [,1] [,2] [,3] [,4]
[1,]    5    5    5    5
[2,]    5    2    3    5
[3,]    5    5    5    5
#访问第2行
> mat[2,]
[1] 5 2 3 5
# 访问第3列
> mat[,3]
[1] 5 3 5
# 矩阵可由多个向量合并而来,使用rbind(行合并)或cbind(列合并)
> rbind(1:5,1:5,1:5)
     [,1] [,2] [,3] [,4] [,5]
[1,]    1    2    3    4    5
[2,]    1    2    3    4    5
[3,]    1    2    3    4    5
> cbind(1:5,1:5,1:5)
     [,1] [,2] [,3]
[1,]    1    1    1
[2,]    2    2    2
[3,]    3    3    3
[4,]    4    4    4

数据框(data.frame):也是一种存储表table的数据格式,它可以优自己的表头和属性名称,每一列是一个向量,但每一行不是。不同列之间的数据属性互不干扰。

> name=c("Tom","Jerry","Lilei")
> score=c(90,70,80)
> excellent=c(TRUE,FALSE,TRUE)
> exam=data.frame(name,score,excellent)
> exam
   name score excellent
1   Tom    90      TRUE
2 Jerry    70     FALSE
3 Lilei    80      TRUE
# 访问方式同矩阵,由[], 每行仍为一个子数据框,没列则仍为一个向量
> tmp=exam[1,]
> tmp
  name score excellent
1  Tom    90      TRUE
> tmp=exam[,1]
> tmp
[1] Tom   Jerry Lilei
Levels: Jerry Lilei Tom
# 可通过原有向量名访问指定列,使用 $ 符号
> exam$name #于exam[,1] 相同
[1] Tom   Jerry Lilei
Levels: Jerry Lilei Tom
# 可自定义数据框的行名或列名,使用rownames或colnames
> rownames(exam)=exam$name
> exam
       name score excellent
Tom     Tom    90      TRUE
Jerry Jerry    70     FALSE
Lilei Lilei    80      TRUE
# 数据框可由数据文件读入,注意:若输入文件中带有表头和属性名称,则左上角值应为缺省,即文件的第一行逼其他行少一个数据,# 此时R将自动将第一行和第一列定义为colnames和rownames,否则将会被当作数据读入到数据框中
> exam=read.csv("exam.csv") #以逗号
> exam=read.table("exam.txt") #以tab

列表:一种更为自由的数据类型,可以存储多种数据类型,并自定义名称

> List=list(Var="R language", Vec=vec, Mat=mat, DF=exam)
> List
$Var
[1] "R language"

$Vec
[1] "a"   "6"   "7.9" "str"

$Mat
     [,1] [,2] [,3] [,4]
[1,]    5    5    5    5
[2,]    5    2    3    5
[3,]    5    5    5    5

$DF
       name score excellent
Tom     Tom    90      TRUE
Jerry Jerry    70     FALSE
Lilei Lilei    80      TRUE

> List$Var
[1] "R language"
> List$Vec
[1] "a"   "6"   "7.9" "str"
> List$Mat
     [,1] [,2] [,3] [,4]
[1,]    5    5    5    5
[2,]    5    2    3    5
[3,]    5    5    5    5
> List$DF
       name score excellent
Tom     Tom    90      TRUE
Jerry Jerry    70     FALSE
Lilei Lilei    80      TRUE

未完待续……

时间: 2024-11-05 05:32:10

R 统计与作图---入门(一)数据类型的相关文章

R语言快速上手入门

R语言快速上手入门 课程学习网址:http://www.xuetuwuyou.com/course/196 课程出自学途无忧网:http://www.xuetuwuyou.com 课程简介 本教程深入浅出地讲解如何使用R语言玩转数据.课程中涵盖R语言编程的方方面面,内容涉及R对象的类型.R的记号体系和环境系统.自定义函数.if else语句.for循环.S3类R的包系统以及调试工具等.本课程还通过示例演示如何进行向量化编程,从而对代码进行提速并尽可能地发挥R的潜能.本课程适合立志成为数据科学家的

Qt入门 - 全局数据类型

<QtGlobal> 1 typedef signed char qint8; /* 8 bit signed */ 2 typedef unsigned char quint8; /* 8 bit unsigned */ 3 typedef short qint16; /* 16 bit signed */ 4 typedef unsigned short quint16; /* 16 bit unsigned */ 5 typedef int qint32; /* 32 bit signe

如何R语言快速上手入门

R语言快速上手入门 课程学习网址:http://www.xuetuwuyou.com/course/196 课程出自学途无忧网:http://www.xuetuwuyou.com 课程简介 本教程深入浅出地讲解如何使用R语言玩转数据.课程中涵盖R语言编程的方方面面,内容涉及R对象的类型.R的记号体系和环境系统.自定义函数.if else语句.for循环.S3类R的包系统以及调试工具等.本课程还通过示例演示如何进行向量化编程,从而对代码进行提速并尽可能地发挥R的潜能.本课程适合立志成为数据科学家的

代写statistical R 程序、代做留学生R统计作业

代写statistical R 程序.代做留学生R统计作业1. This is a take-home final exam.2. Answers to Questions 1,2,3,4 should be written using a Latex editor. Question 5 can beanswered using your preferred program. All answers should be merged in a single PDF andsubmitted i

Python入门——基本数据类型

Python语法入门--基本数据类型 数字类型(python中并无此种类型,只是单纯的归类) int整形 作用:记录年龄.个数等 定义: age = 18 print(type(age)) float浮点型 作用:记录薪资.身高等 定义: salary = 3.3 print(type(salary)) 数字类型的其他使用 level = 1 level = level + 1 print(level) print(10 *3) print(10 + 3.3) # int与float之间可以相加

【R语言系列】作图入门示例一

假设有如下数据,我们使用plot函数作图 月龄 体重 月龄 体重  1 4.4 9 7.3 3 5.3 3 6.0 5 7.2 9 10.4 2 5.2 12 10.2 11 8.5 3 6.1 R语言中默认函数 abs   绝对值 sqrt   平方根 exp  e^x次方 log   自然对数 log2 log10  其他对数 sin  cos tan 三角函数 sinh cosh tanh  双曲函数 poly  正交多项式 polyroot  多项式求根 assign   赋值操作 等同

【IOS 开发】Object - C 入门 之 数据类型详解

作者 : 韩曙亮 转载请注明出处 : http://blog.csdn.net/shulianghan/article/details/38544659 1. 数据类型简介及输出 (1) 数据类型简介 数据类型简介 : Object - C 数据类型 分为 基本数据类型, 构造类型 和 指针类型; -- 基本数据类型 : 整型, 字符型, 浮点型 (float 和 double), 枚举型; -- 构造类型 : 数组类型, 结构体类型, 共用体类型; -- 指针类型 : 最终要的数据类型, 所有

R统计建模与R软件

教材目录 第一章 概率统计的基本知识 第二章 R软件的使用 第三章 数据描述性分析 第四章 参数估计 第五章 假设检验 第六章 回归分析 第七章 方差分析 第八章 应用多元分析(I) 第九章 应用多元分析(II) 第十章 计算机模拟 第一章 概率统计的基本知识   第二章 R软件的使用 2.1 求均值和方差 > X1 <- c(35,40,40,42,37,45,43,37,44,42,41,39) > mean(X1) [1] 40.41667 > sd(X1) [1] 3.02

【IOS 开发】Object - C 入门 之 数据类型具体解释

作者 : 韩曙亮 转载请注明出处 : http://blog.csdn.net/shulianghan/article/details/38544659 1. 数据类型简单介绍及输出 (1) 数据类型简单介绍 数据类型简单介绍 : Object - C 数据类型 分为 基本数据类型, 构造类型 和 指针类型; -- 基本数据类型 : 整型, 字符型, 浮点型 (float 和 double), 枚举型; -- 构造类型 : 数组类型, 结构体类型, 共用体类型; -- 指针类型 : 终于要的数据