任何一门语言,数据类型和数据结构是最基础,也是最重要的,必须要学好!
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弹:创建数据集的更多相关文章

  1. R语言实战读书笔记2—创建数据集(上)

    第二章 创建数据集 2.1 数据集的概念 不同的行业对于数据集的行和列叫法不同.统计学家称它们为观测(observation)和变量(variable) ,数据库分析师则称其为记录(record)和字 ...

  2. 第一课 导入库 - 创建数据集 - CSV读取 - 导出 - 查找最大值 - 绘制数据

    第1课 创建数据 - 我们从创建自己的数据集开始分析.这可以防止阅读本教程的最终用户为得到下面的结果而不得不下载许多文件.我们将把这个数据集导出到一个文本文件中,这样您就可以获得从文本文件中一些拉取数 ...

  3. R实践 第二篇:创建数据集

    准备数据是数据分析的第一步,由数据构成集合,我们称作数据集,数据集的结构是行列式的,行表示观测,列表示变量.把数据读入到R中,转换为合适的数据结构,能够提高数据分析的效率.在数据分析中,常用的存储数据 ...

  4. 《R语言实战》读书笔记--第二章 创建数据集

    2.1数据集的概念 变量的类型是不同的,比如标示符.日期变量.连续变量.名义变量.有序型变量等,记得数据挖掘导论中有专门的描述. R可以处理的数据类型包括了数值型.字符型.逻辑型.复数型(虚数).原生 ...

  5. RLearning第1弹:初识R语言

    R作为一种统计分析软件,是集统计分析与图形显示于一体的.体积小.开源.很强的互动性.自从学了R本人就很少再用matlab了... 一.R语言由函数和赋值构成. R使用<-(最好养成使用习惯),而 ...

  6. R语言实战(二) 创建数据集

    2.1 数据集的概念 不同的行业对于数据集的行和列叫法不同.统计学家称它们为观测(observation)和变量(variable),数据库分析师则称其为记录(record)和字段(field),数据 ...

  7. [读书笔记] R语言实战 (二) 创建数据集

    R中的数据结构:标量,向量,数组,数据框,列表 1. 向量:储存数值型,字符型,或者逻辑型数据的一维数组,用c()创建 **  R中没有标量,标量以单元素向量的形式出现 2. 矩阵:二维数组,和向量一 ...

  8. tensorflow-- Dataset创建数据集对象

    tf.data模块包含: experimental 模块 Dataset 类  FixedLengthRecordDataset 类 TFRecordDataset 类 TextLineDataset ...

  9. 【猫狗数据集】pytorch训练猫狗数据集之创建数据集

    猫狗数据集的分为训练集25000张,在训练集中猫和狗的图像是混在一起的,pytorch读取数据集有两种方式,第一种方式是将不同类别的图片放于其对应的类文件夹中,另一种是实现读取数据集类,该类继承tor ...

随机推荐

  1. 标准库Queue的实现

    跟上篇实现stack的思路一致,我增加了一些成员函数模板,支持不同类型的Queue之间的复制和赋值. 同时提供一个异常类. 代码如下: #ifndef QUEUE_HPP #define QUEUE_ ...

  2. UVA10312- Expression Bracketing(Catalan + 递推)

    option=com_onlinejudge&Itemid=8&page=show_problem&problem=1253">题目链接 题意:给出一个序列,长 ...

  3. AI学习笔记

    人人都是产品经理,继续设计课程啦啦啦啦 ADOBE: ps, ai, fl, dw, fw, ae, pr, id   COREL: painter coreldraw   autodesk: 三维: ...

  4. JavaScript 匹配浮点数

    //匹配整数,正小数 appUtils.bindEvent($(_pageId+" .remind-list-con input"),function(){ var reg = / ...

  5. java模拟异步消息的发送与回调

      http://kt8668.iteye.com/blog/205739 本文的目的并不是介绍使用的什么技术,而是重点阐述其实现原理. 一. 异步和同步 讲通俗点,异步就是不需要等当前执行的动作完成 ...

  6. IBM Security AppScan Glass Box:一种全新的漏洞扫描思想

    IBM Security AppScan Glass Box:一种全新的漏洞扫描思想 Glass Box 是 IBM Security AppScan Standard Edition(以下简称 Ap ...

  7. laravel模型建立和数据迁移和数据填充(数据填充没有成功)未完

    开始创建我们的第一个 Article 模型及其对应迁移文件了,我们在项目根目录运行如下 Artisan 命令一步到位: php artisan make:model Article -m -m 是 - ...

  8. jQuery 遍历 - eq() 和siblings() 方法

    eq() 方法将匹配元素集缩减值指定 index 上的一个. 通过为 index 为 2 的 div 加入适当的类.将其变为蓝色: <!DOCTYPE html> <html> ...

  9. 在spring mvc中利用ajax批量删除数据

    1.前台代码: $("#batchdelete").click(function(){ $.ajax({ type: "post", url: url, dat ...

  10. 如何自定义View

    1. 首先 在values目录下建立attrs.xml文件,添加属性内容 ·在布局文件中添加新的命名空间xmlns,然后可以使用命名空间给自定义的空间设置属性 attrs.xml <resour ...