任何一门语言,数据类型和数据结构是最基础,也是最重要的,必须要学好!
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. swoole编译安装/数据库连接池/异步mysql客户端

    一.编译安装php5.6 0.安装必要软件 http://www.cnblogs.com/itfenqing/p/6055138.html 1.下载php5.6.30 http://php.net/d ...

  2. MySQL 5.6.26几种安装包的差别

    http://downloads.mysql.com/archives/community/ 一.MySQL Installer 5.6.26 mysql-installer-community-5. ...

  3. 仿百度壁纸client(六)——完结篇之Gallery画廊实现壁纸预览已经项目细节优化

    仿百度壁纸client(六)--完结篇之Gallery画廊实现壁纸预览已经项目细节优化 百度壁纸系列 仿百度壁纸client(一)--主框架搭建,自己定义Tab + ViewPager + Fragm ...

  4. java.math.BigDecimal保留两位小数,保留小数,精确位数

    http://blog.csdn.net/yuhua3272004/article/details/3075436 使用java.math.BigDecimal工具类实现   java保留两位小数问题 ...

  5. 转 拉姆达表达式,委托、匿名方法、Lambda表达式的演进

    总结:Lambda表达式的语法:(参数列表=>执行语句) 无参数格式 :()=>{执行语句} 有参数格式:x=> x % 2 == 0 1.假设给我们一个泛型对象List<T& ...

  6. 转python调用Go代码

    Go 1.5发布了,其中包含了一个特性:可以编译生成动态链接库,经试验,生成的.so文件可以被python加载并调用.下面举个例子: 先写一个go文件main.go: package main imp ...

  7. Codeforces Round #275 (Div. 2) C

    题目传送门:http://codeforces.com/contest/483/problem/C 题意分析:题目意思没啥好说的. 去搞排列列举必须TLE.那么就想到构造. 1.n.2.n-1.3.n ...

  8. [译]GLUT教程 - 移动镜头1

    Lighthouse3d.com >> GLUT Tutorial >> Input >> Move the Camera I 下面来看一个更有趣的GLUT应用.本 ...

  9. 解决Apache长时间占用内存大的问题,Apache 内存优化方法

    问:为什么服务器在连续运行多天后或访问峰值后,进程中的一个Apache.exe占用内存几百兆不减少?答:用记事本打开apache2\conf\httpd.conf,我在centos5上装了kloxo, ...

  10. 谨慎使用ArrayList中的subList方法

    转自:https://www.toutiao.com/a6705958780460335619/?tt_from=weixin&utm_campaign=client_share&wx ...