RLearning第2弹:创建数据集
任何一门语言,数据类型和数据结构是最基础,也是最重要的,必须要学好!
1.产生向量
a<-c(1,2,5,3,6,-2,4)
b<-c("one","two","three")
c<-c(TRUE,TRUE,FALSE,FALSE,FALSE)
这里a是数值型向量,b是字符型变量,而c是逻辑型向量。单个向量中的数据必须拥有相同的类型或模式(数值型、字符型或逻辑型)!
2.访问向量中元素
> a<-c(1,2,5,3,6,-2,4) > a[3] [1] 5 > a[c(1,3,5)] [1] 1 5 6 > a[2:6] #使用冒号生成数值序列,等价于a[c(2,3,4,5,6)]和a[c(2:6)] [1] 2 5 3 6 -2 a<-c(2:6)等价于a<-c(2,3,4,5,6)
3.矩阵
> x<-matrix(1:20,nrow = 5,ncol = 4) #可以只写nrow或ncol
> x
[,1] [,2] [,3] [,4]
[1,] 1 6 11 16
[2,] 2 7 12 17
[3,] 3 8 13 18
[4,] 4 9 14 19
[5,] 5 10 15 20
> cells <- c(1,26,24,68)
> rnames <- c("R1","R2")
> cnames <- c("C1","C2")
> mymatrix <- matrix(cells, nrow = 2,ncol = 2,byrow = TRUE,dimnames = list(rnames,cnames))
> mymatrix
C1 C2
R1 1 26
R2 24 68
> mymatrix <- matrix(cells, nrow = 2,ncol = 2,byrow = FALSE,dimnames = list(rnames,cnames))
> mymatrix
C1 C2
R1 1 24
R2 26 68
#另一个例子:
> x<-matrix(1:10,nrow = 2)
> x
[,1] [,2] [,3] [,4] [,5]
[1,] 1 3 5 7 9
[2,] 2 4 6 8 10
> x[2,] #访问矩阵第二行,注意区分:matlab中x(2,:)表示访问矩阵第二行
[1] 2 4 6 8 10
> x[,2]
[1] 3 4
> x[1,4]
[1] 7
> x[1,c(4,5)]
[1] 7 9
4.数据框
一般格式:mydata <- daframe(col1,col2,col3,…)
其中列向量col1,col2,col3,…可以为任何类型(如字符型、数值型或逻辑型)。
例如:
> patientID <- c(1,2,3,4)
> age <- c(25,34,28,52)
> diabetes <- c("Type1","Type2","Type1","Type1")
> status <- c("Poor","Improved","Excellent","Poor")
> patientdata <- data.frame(patientID,age,diabetes,status)
> patientdata
patientID age diabetes status
1 1 25 Type1 Poor
2 2 34 Type2 Improved
3 3 28 Type1 Excellent
4 4 52 Type1 Poor
注意:每一列数据的模式必须唯一。
> patientdata[1,2]
[1] 25
> patientdata[1:2]
patientID age
1 1 25
2 2 34
3 3 28
4 4 52
> patientdata[c("diabetes","status")]
diabetes status
1 Type1 Poor
2 Type2 Improved
3 Type1 Excellent
4 Type1 Poor
> patientdata$age
[1] 25 34 28 52
附:
就$简单介绍:
$用来选取给定一个数据框中某个特定变量。
在每个变量名前都键入patientdata$可能会让人生厌,可以联合使用attach()和detach()和with()来简化代码。
例如:
with(mtcars,{
summary(mpg,disp,wt)
plot(mpg,disp)
plot(mpg,wt)
})
5.因子
变量可以归结为名义型、有序型或连续型变量。名义型和有序型变量在R中成为因子(factor)。因子在R中非常重要,因为它决定了数据的分析方式以及如何进行视觉呈现。
函数factory()以一个整数向量的形式存储类别值,整数的取值范围是[1...k](k是名义型变量中唯一值的个数),同时一个由字符串(原始值)组成的内部向量将映射到这些整数上。
> diabetes <- c("Type1","Type2","Type1","Type1")
> diabetes <- factor(diabetes) #将此向量存储为(1,2,1,1)默认并内在关联1=Type1,2=Type2。
> diabetes
[1] Type1 Type2 Type1 Type1
Levels: Type1 Type2
也可以通过指定levels选项来覆盖默认排序。例如:
> status <- factor(status,order=TRUE,levels=c("Poor","Improved","Excellent"))
> status
[1] Poor Improved Excellent Poor
Levels: Poor < Improved < Excellent
因子的使用:
> patientID <- c(1,2,3,4) #向量形式输入数据
> age <- c(25,34,28,52)
> diabetes <- c("Type1","Type2","Type1","Type1")
> status <- c("Poor","Improved","Excellent","Poor")
> patientdata <- data.frame(patientID,age,diabetes,status)
> diabetes <- factor(diabetes)
> status <- factor(status,order=TRUE,levels=c("Poor","Improved","Excellent"))
> patientdata <- data.frame(patientID,age,diabetes,status)
> str(patientdata) #显示对象结构
'data.frame ': 4 obs. of 4 variables:
$ patientID : num 1 2 3 4
$ age : num 25 34 28 52
$ diabetes : Factor w/ 2 levels "Type1","Type2": 1 2 1 1
$ status : Ord.factor w/ 3 levels "Poor"<"Improved"<..: 1 2 3 1
> summary(patientdata) #显示对象的统计概要
patientID age diabetes status
Min. :1.00 Min. :25.00 Type1:3 Poor :2
1st Qu.:1.75 1st Qu.:27.25 Type2:1 Improved :1
Median :2.50 Median :31.00 Excellent :1
Mean :2.50 Mean :34.75
3rd Qu.:3.25 3rd Qu.:38.50
Max. :4.00 Max. :52.00
class函数查看数据类型。
6.数组
基本格式:array(data=NA, dim= length(data), dimnames=NULL)
data表示数据,可以为空;dim表示维数,dimnames可以更改数组的维度名称。
见下例:
> (xx<-array(1:24,c(3,4,2)))
, , 1
[,1] [,2] [,3] [,4]
[1,] 1 4 7 10
[2,] 2 5 8 11
[3,] 3 6 9 12
, , 2
[,1] [,2] [,3] [,4]
[1,] 13 16 19 22
[2,] 14 17 20 23
[3,] 15 18 21 24
> xx[1,3,2]
[1] 19
> xx[2,1:3,1]
[1] 2 5 8
> xx[,2,]
[,1] [,2]
[1,] 4 16
[2,] 5 17
[3,] 6 18
> dim(xx)
[1] 3 4 2
> zz <- 1:12
> dim(zz)=c(2,2,3)
> zz
, , 1
[,1] [,2]
[1,] 1 3
[2,] 2 4
, , 2
[,1] [,2]
[1,] 5 7
[2,] 6 8
, , 3
[,1] [,2]
[1,] 9 11
[2,] 10 12
7.列表
基本格式:list(变量1=分量1,变量2=分量2,...)
> x <- c(1,1,2,3,4,4,4)
> y <- c("女","男","男","女","女","女","男")
> z <- c(80,83,75,83,85,64,85)
> (LST<-list(class=x,sex=y,score=z))
$class
[1] 1 1 2 3 4 4 4
$sex
[1] "女" "男" "男" "女" "女" "女" "男"
$score
[1] 80 83 75 83 85 64 85
> LST[[3]] #返回列表的第三个成分的值;[[...]]选择单个元素的操作符
[1] 80 83 75 83 85 64 85
> LST[[2]][1:3]
[1] "女" "男" "男"
> LST$score
[1] 80 83 75 83 85 64 85
> LST$sc #成为名可以缩写到可以区分的最短程度
[1] 80 83 75 83 85 64 85
> LST[3] #[...]通用下标操作符
$score
[1] 80 83 75 83 85 64 85
> length(LST)
[1] 3
> mode(LST)
[1] "list"
> names(LST)
[1] "class" "sex" "score"
另:
注意0!=0以及求余和求整的情况
RLearning第2弹:创建数据集的更多相关文章
- R语言实战读书笔记2—创建数据集(上)
第二章 创建数据集 2.1 数据集的概念 不同的行业对于数据集的行和列叫法不同.统计学家称它们为观测(observation)和变量(variable) ,数据库分析师则称其为记录(record)和字 ...
- 第一课 导入库 - 创建数据集 - CSV读取 - 导出 - 查找最大值 - 绘制数据
第1课 创建数据 - 我们从创建自己的数据集开始分析.这可以防止阅读本教程的最终用户为得到下面的结果而不得不下载许多文件.我们将把这个数据集导出到一个文本文件中,这样您就可以获得从文本文件中一些拉取数 ...
- R实践 第二篇:创建数据集
准备数据是数据分析的第一步,由数据构成集合,我们称作数据集,数据集的结构是行列式的,行表示观测,列表示变量.把数据读入到R中,转换为合适的数据结构,能够提高数据分析的效率.在数据分析中,常用的存储数据 ...
- 《R语言实战》读书笔记--第二章 创建数据集
2.1数据集的概念 变量的类型是不同的,比如标示符.日期变量.连续变量.名义变量.有序型变量等,记得数据挖掘导论中有专门的描述. R可以处理的数据类型包括了数值型.字符型.逻辑型.复数型(虚数).原生 ...
- RLearning第1弹:初识R语言
R作为一种统计分析软件,是集统计分析与图形显示于一体的.体积小.开源.很强的互动性.自从学了R本人就很少再用matlab了... 一.R语言由函数和赋值构成. R使用<-(最好养成使用习惯),而 ...
- R语言实战(二) 创建数据集
2.1 数据集的概念 不同的行业对于数据集的行和列叫法不同.统计学家称它们为观测(observation)和变量(variable),数据库分析师则称其为记录(record)和字段(field),数据 ...
- [读书笔记] R语言实战 (二) 创建数据集
R中的数据结构:标量,向量,数组,数据框,列表 1. 向量:储存数值型,字符型,或者逻辑型数据的一维数组,用c()创建 ** R中没有标量,标量以单元素向量的形式出现 2. 矩阵:二维数组,和向量一 ...
- tensorflow-- Dataset创建数据集对象
tf.data模块包含: experimental 模块 Dataset 类 FixedLengthRecordDataset 类 TFRecordDataset 类 TextLineDataset ...
- 【猫狗数据集】pytorch训练猫狗数据集之创建数据集
猫狗数据集的分为训练集25000张,在训练集中猫和狗的图像是混在一起的,pytorch读取数据集有两种方式,第一种方式是将不同类别的图片放于其对应的类文件夹中,另一种是实现读取数据集类,该类继承tor ...
随机推荐
- Bounded Context
From http://martinfowler.com/bliki/BoundedContext.html Bounded Context is a central pattern in Domai ...
- Vue 事件修饰符 阻止默认事件
阻止默认事件: <a v-on:click.prevent="doThat"></a>
- 关于其它模块的设计,有非常多须要自己去构建和完毕,在这里就简单地举几个样例来看看其它模块的设计。我们要做的就是有更改password模块,客户选择模块和关于本软件模块。更改password模块用来更改管理员的password,客户选择对话框模块用来选择已加入的客户,关于本软件模块用来说明客户管理系统的一些必要信息和制作人的信息。
五,其它模块设计 关于其它模块的设计,有非常多须要自己去构建和完毕,在这里就简单地举几个样例来看看其它模块的设计. 我们要做的就是有更改password模块.客户选择模 ...
- Android——点击对话框上button不关闭对话框
有时候我没可能须要在点击button进行一些检測.可是并不想关闭次对话框(系统默认点击不论什么一个button则关闭对话框),处理方法例如以下:在点击事件下加入例如以下代码: try { Field ...
- Mac下配置mnmp环境
虽然比较喜欢玩下新语言, 但是php还是常会用到的. lnmp很多人都听过, 但是不能用在Mac上面, 另外还有个mnpp但在osx 10.8.3下面跑不起来.所以自己手动一步步安装, 整理了方便安装 ...
- [译]GLUT教程 - 创建和关闭子窗体
Lighthouse3d.com >> GLUT Tutorial >> Subwindows >> Creating and Destroying Subwind ...
- Visual Studio的 Apache Cordova 插件CTP3.0发布!
北京时间12号晚23点开始的Connect()活动上,微软发布了一系列激动人心的消息! .NET开源了!以后.NET将可在Linux和Mac OS平台上运行! VS免费了!!如果你是学生,个人开发者, ...
- go的url解析
对于解析url,是一个常见的场景,下面就来说这个,直接见代码: package main import ( "fmt" "net/url" "stri ...
- 08 nginx Location总结图解
- ActivityLifecycleCallbacks 如何控制activity的生命周期
Android开发 - ActivityLifecycleCallbacks使用方法初探 初识 ActivityLifecycleCallbacks 利用ActivityLifecycleCallba ...