任何一门语言,数据类型和数据结构是最基础,也是最重要的,必须要学好!
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. Python——五分钟理解元类(metaclasses)

    “元类的魔幻变化比 99% 的用户所担心的更多,当你搞不懂是否真的需要用它的时候,就是不需要.” —Tim Peters 本文源于在 PyCon UK 2008 上的一个快速演讲. 元类被称为 Pyt ...

  2. eclipse 内存配置

    -server -Xms256m -Xmx512m -XX:PermSize=128M -XX:MaxPermSize=256m -XX:+UseG1GC

  3. 企业级监控工具Cacti安装配置全过程

      Cacti 在英文中的意思是仙人掌的意思,Cacti是一套基于PHP,MySQL,SNMP及RRDTool开发的网络流量监测图形分析工具.它通过 snmpget来获取数据,使用 RRDtool绘画 ...

  4. Java学习从入门到精通(2) [转载]

    Java Learning Path(二).书籍篇 学习一门新的知识,不可能指望只看一本,或者两本书就能够完全掌握.需要有一个循序渐进的阅读过程.我推荐Oreilly出版的Java系列书籍. 在这里我 ...

  5. asp.net core mvc视频A:笔记3-5.视图数据共享之TempData

    前几节讲的都是单页面数据共享,从本节开始讲跨页面数据共享 创建项目3.5,新建控制器 代码 控制器 设置TempData 另一个视图中读取TempData数据 运行 此时如果刷新页面,页面中的内容“张 ...

  6. cache和buffer区别探讨

    一. 1.Buffer(缓冲区)是系统两端处理速度平衡(从长时间尺度上看)时使用的.它的引入是为了减小短期内突发I/O的影响,起到流量整形的作用.比如生产者——消费者问题,他们产生和消耗资源的速度大体 ...

  7. shell中的括号作用

    一.小括号,圆括号() 1.单小括号 ()    ①命令组.括号中的命令将会新开一个子shell顺序执行,所以括号中的变量不能够被脚本余下的部分使用.括号中多个命令之间用分号隔开,最后一个命令可以没有 ...

  8. 系统服务-----NotificationManager

    熟悉api事例笔记: package com.test; import com.example.test.R; import android.app.Activity; import android. ...

  9. 小白学习HTTPS

    如果你和我一样是HTTPS的小白的话,那就一起来学习这个吧.争取把这篇博客写好,写全面,从原理到实践再到部署. 让我们先来模拟一个场景:当你嗨皮地敲着代码,你的老板偷偷摸摸跑到你的身边,"小 ...

  10. linux系统寻找僵尸进程

    1. 用top命令来查看服务器当前是否有僵尸进程. 2. 用ps和grep命令寻找僵尸进程 $ ps -A -ostat, pid, ppid, cmd | grep -e '^[Zz]' 命令解释: ...