数据结构用于存储数据,不同的数据结构对应不同的操作方法,对应不同的分析目的,应选择合适的数据结构。在处理数据时,为了便于检查数据对象,可以通过函数attributes(x)来查看数据对象的属性,str(x)函数用于查看R对象的内部结构,通过print(x)函数,显示数据对象存储的内容,该函数把数据打印到控制台上,另外,RStudio提供了一个可视化查看数据的函数View(x)。

一,处理标量数据

标量通常是常量,每一个标量都有特定的数据类型,常用的数据类型是数值类型,字符类型,逻辑类型和日期类型。

对于逻辑类型,可能的值是TRUE和FALSE,用于逻辑操作的运算符:与(&)、或(|)、非(!)

R语言中经常会遇到一些特殊值:

  • 缺失值 NA(Not Avaiable),是不可用的缩写,通过函数is.na(x)来测试变量的值是否为NA;
  • NaN为“不是一个数”,意味着计算没有数学意义;
  • NULL值,空值,表示一个空的变量,不会占用任何空间,通过函数is.null(x)来测试变量的值是否为NULL;
  • 特殊的数字:Inf、-Inf 表示正无穷,负无穷;

1,日期类型

日期类型比较特殊,日期值通常以字符串的形式输入到R中,然后使用as.Date()函数转换为以数值形式存储的日期变量,as.Date()函数的语法是:

as.Date(x, input_format)

参数input_format是日期值的输入格式,默认的输入格式是"yyyy-mm-dd":

mydate <- as.Date("2017-01-13")

输入参数可以自定义日期的输入格式:

  • %d:数字表示的天(0-31)
  • %a:缩写的星期名(Mon、Tue、Wed、Thur、Fri、Sat、Sun)
  • %m:月份(00、01、02等)
  • %b:缩写的月份(Jan、Feb、Mar等)
  • %B:英语月份(January、February 、March等)
  • %y:两位数的年份
  • %Y:四位数的年份

举个例子,把默认的日期格式转换为特定类型的日期格式:

as.Date("2018-03-05","%Y-%m-%d")

把日期类型转换为字符串类型,可以使用format()函数,指定日期的输出格式:

format(mydate,format="output_format")

例如,把当前日期按照特定的格式输出:

today<-Sys.Date()
format(today,format("%B %d %Y"))

也可以直接把日期类型转换为字符串类型:

strdate <- as.character(mydate)

2,字符类型

常用的字符类型的操作:

  • 查看字符数量: nchar(x)
  • 提取或替换字符的子串: substr(x, start,stop)
  • 匹配模式,返回下标:grep(pattern, x, ignore.case=FALSE, fixed=FALSE),从x中搜索匹配模式的字符的下标
  • 匹配模式,并替换:sub(pattern, replacement, x, ignore.case=FALSE, fixed=FALSE),从x中搜索匹配模式的字符,并以文本replacement替换
  • 分割字符: strsplit(x,split,fixed=FALSE)
  • 连接字符: paste(...,sep=" "),把多个字符连接成一个长的字符串,分隔符由参数sep指定
  • 字符的大小写转换: toupper(x),tolower(x)

3,数值类型

对于数值类型,算术运算符是:

  • 加(+),减(-),乘(*),除(/)
  • 幂运算:^ 或 **
  • 模运算:%%
  • 整除:%/%

处理数值类型常用的数学函数是:

  • 不小于x的最小整数:ceiling(x)
  • 不大于x的最大整数:floor(x)
  • 四舍五入,函数原型是round(x,digits=n),digits设定小数点位置,默认为0,即小数点后零位(取整)
  • 保留小数的有效位数:signif(x,digits=n)
  • 截取整数部分,舍弃小数部分:trunc(x)

常用的统计函数:

  • 平均值:mean(x)
  • 中位数:median(x)
  • 绝对中位数:mad(x)
  • 分位数:quantile(x,probs)
  • 标准差:sd(x)
  • 方差:var(x)
  • 值域:range(x)
  • 求和:sum(x)
  • 最值:min(x),max(x)
  • 标准化:scale(x, center=TRUE, scale=TRUE)
  • 计数:count(df, vars)和length(x),计数的使用方法比较特殊,请阅读《R实战 第六篇:数据变换(aggregate+dplyr包)

分割区间的函数:

  • 把连续型变量分割位有着n个水平的因子:cut(x, n, ordered_result)
  • 创建美观的分割点,通过选取n+1个等间距的取整值,把一个连续型变量分割位n个区间:pretty(x, n)

数学函数:

  • abs(x):绝对值
  • sqrt(x):平方根
  • exp(x):以e为底,x为指数的指数函数
  • 对数函数:log(x,base=n)对x取以n为底的对数,log(x) 自然对数以e为底,log10(x)以10为底;

二,类型判断和转换

三,随机抽样

从海量的数据抽取一定数量的样本数据,以创建分析模型,抽样的函数是:

sample(x, size, replace = FALSE, prob = NULL)

参数注释:

  • x:样本空间
  • size:抽取的样本数量
  • replace:如果为TRUE,表示放回抽样;如果为FALSE,表示无放回抽样;

举个例子,采用放回抽样,把样本重复12次,得到一个矩阵,并转换为数据框类型:

> d <-data.frame(matrix(sample(c(NA, :), , replace = TRUE), ))
> d
X1 X2 X3
NA
NA NA NA

四,伪随机数

函数runif()用于生成服从正态分布的伪随机数,n是生成随机数的个数,min和max是随机数的最值。

runif(n, min = , max = )

在每次生成随机数时,函数都会使用一个不同的种子,因此会产生不同的结果,通过函数set.seed(n)显式指定种子,让结果可以重现。

举个例子,设置随机数种子,使用runif()函数生成0-1区间上服从均匀分布的伪随机数:

set.seed(n)
runif()

设置R会话的小数点数量,生成整数伪随机数:

> options(digits=)
> set.seed()
> runif(,min=,max=)
[]

 

 

TSQL “匹配全部”语义的实现的更多相关文章

  1. 穷人的语义处理工具箱之中的一个:语义版Jaccard

    /* 版权声明:能够随意转载,转载时请标明文章原始出处和作者信息 .*/ author: 张俊林 |为什么我们是ML界的穷人 假设对工业界里的机器学习(ML)从业者进行阶级划分的话,划线标准不是你用的 ...

  2. 1.6.5 Updating Parts of Documents

    1. Updating Parts of Documents 有时候你想要直接改变solr文档中的部分内容,solr有两种合适的方法来改变. 第一种:自动更新,这个方法允许仅仅改变文档的一个或者几个字 ...

  3. Lucene.Net 2.3.1开发介绍 —— 二、分词(一)

    原文:Lucene.Net 2.3.1开发介绍 -- 二.分词(一) Lucene.Net中,分词是核心库之一,当然,也可以将它独立出来.目前Lucene.Net的分词库很不完善,实际应用价值不高.唯 ...

  4. 微软认知服务 Luis

    学习认知服务 Luis(Language understand intellgence service) 简述: 开发者可以通过Luis开发可以理解人类语言的只能应用,学习人类语言分析语义. 利用这个 ...

  5. DirectX11 With Windows SDK--16 流输出阶段

    前言 在上一章,我们知道了如何使用几何着色器来重新组装图元,比如从一个三角形分裂成三个三角形.但是为了实现更高阶的分形,我们必须要从几何着色器拿到输出的顶点.这里我们可以使用可选的流输出阶段来拿到顶点 ...

  6. flutter 容器 几种写法

    1.Stack: 取代线性布局 (译者语:和Android中的LinearLayout相似),Stack允许子 widget 堆叠, 你可以使用 Positioned 来定位他们相对于Stack的上下 ...

  7. Flutter之Container详解

    1 基本内容1.1 继续关系Object > Diagnosticable > DiagnosticableTree > Widget > StatelessWidget &g ...

  8. Postgresql 正则表达式

    在postgresql中使用正则表达式时需要使用关键字“~”,以表示该关键字之前的内容需匹配之后的正则表达式,若匹配规则不需要区分大小写,可以使用组合关键字“~*”: 相反,若需要查询不匹配这则表达式 ...

  9. 主题模型︱几款新主题模型——SentenceLDA、CopulaLDA、TWE简析与实现

    百度最近开源了一个新的关于主题模型的项目.文档主题推断工具.语义匹配计算工具以及基于工业级语料训练的三种主题模型:Latent Dirichlet Allocation(LDA).SentenceLD ...

随机推荐

  1. java中Map和List初始化的两种方法

    第一种方法(常用方法): //初始化List List<string> list = new ArrayList</string><string>(); list. ...

  2. [转]oracle分析函数Rank, Dense_rank, row_number

    oracle分析函数Rank, Dense_rank, row_number 分析函数2(Rank, Dense_rank, row_number)   目录 ==================== ...

  3. SOAPUI使用教程-入门REST测试

    首先,通过选择文件菜单中的“新建REST项目”选项创建从文件菜单中一个新的REST项目: 指定服务端点场下谷歌地图API网址: http://maps.googleapis.com/maps/api/ ...

  4. my97DatePicker日期控件——日期输入框联动,使用focus使第二个输入框没展示出日期控件

    描述问题场景: 1.jquery使用的版本是jquery-1.7.2.min.js 2.代码不是写在页面上的,是通过事件后追加的 <!DOCTYPE html> <html> ...

  5. pointer-events 使用场景

    最近做一个简单移动web功能,可以左右滑动切换功能.如下图: 但是用户不知道可以滑动切换,所以需要提示用户可以滑动切换,那就添加了一个滑动动画. 滑动动画在最上层,所以当显示滑动提示显示的时候,用户切 ...

  6. arm,iptables: No chain/target/match by that name.

    最近由于项目需要,需要打开防火墙功能. 公司有 arm linux 3.0x86 linux 3.2x86 linux 2.4 的三个嵌入式.都需要打开防火墙功能. 执行“whereis iptabl ...

  7. ajax的一些笔试面试题

    1. 什么是ajax,为什么要使用Ajax(请谈一下你对Ajax的认识) 什么是ajax: AJAX是“Asynchronous JavaScript and XML”的缩写.他是指一种创建交互式网页 ...

  8. html5地理位置定位功能小析

    Geolocationd 基本原理1.GPS    GPS基本原理是测量出已知位置的卫星到用户接收机之间的距离,然后综合多颗卫星的数据就可知道接收机的具体位置.适用于具备GPS功能的设备(1)优点:在 ...

  9. 临时更换hadoop-ugi

    在用spark读写hdfs数据时,有时候当前用户对要读写的hdfs路径没有权限,需要临时改变用户去读写hdfs,操作完后回到原来的用户.我们的hdfs是没有权限认证的,一开始通过下面代码的方式来实现. ...

  10. 关于iOS后台问题( 一 )(ios后台刷新,后台定位,后台下载,真后台)

    关于iOS的后台,以下引用一些文段进行一下脑补,请同学们大致看一下,有个基础,原文出处 -------------------------------------------------------- ...