R语言之数据处理
一、向量处理
1.选择和显示向量
data[1]
data[3]
data[1:3]
data[-1]:除第一项以外的所有项
data[c(1,3,4,6)]
data[data>3]
data[data<5|data>7]:小于5或大于7的所有项
which(data == max(data)):显示数值最大的那个项序号
data[seq(1,length(data),2)]:每隔一段取出特定值,1为从第一项开始,length(data)表示到向量的最后一项结束,2表示间隔两项
2.向量的排序
sort()函数可以为向量排序,默认为升序,选项na.last默认为去掉NA项,TRUE为包含NA并放置最后,FALSE为包含NA并放置最前面,对于重复数值,sort采取的是并列排序的方式
sort(data,na.last = NA)
sort(data,na.last = TRUE)
sort(data,na.last = FALSE)
order()函数,获得向量的排序号,选项na.last默认为TRUE包含NA并将其放置最后,NA为不包含NA项,FALSE为包含NA并放置最前面
oder(data,na.last = NA)
order(data,na.last = TRUE)
order(data,na.last = FALSE)
rank()函数,也是向量排序函数,和sort()不同,对于重复数值,rank不会并列,而且采用其他方式,默认为采取去平均数。选项ties.method为处理重复数值的方式,na.last为处理NA值的方式,keep为保留NA值
rank(data,ties.method=average,na.last="keep")
3.向量返回逻辑值
直接使用向量进行等号判断即可,如
> data == 100
[1] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
FALSE FALSE
二、矩阵和数据框处理
1.选择和显示矩阵或数据框
和向量一样,选择矩阵和数据框也可以使用[],但是需要指定行和列,通用格式为
object[row,column]
如
data[3,3]:选择第三行第三列的数据
data[3,1:4]:选择第三行和1-4列的数据
data[1:2,1:3]:选择第1-2行、第1-3列的数据
data[,1]:选择第一列的全部数据,以向量形式返回
data[1,]:选择第一行全部数据
data[1]:对于数据框,显示第一列的数据,以列表形式返回,对于矩阵,将视为索引号,显示索引号对应的值。
data[c(1,3,5,7),]
data[c(1,3,5,7).-4]:选择1,3,5,7行、除第四列以外的所有值。
data[c(1,3,5,7),"列名"],选项1,3,5,7行,和某列的值
索引号:矩阵的索引方式是从第一列第一行开始,依次读取每一列,可用test.matrix
2.矩阵和数据框的排序
和向量一样,也使用sort、order、rank函数进行排序,但是sort可用对整个矩阵排序,但是不能对整个数据框排序,应用数据框的时候,应选择其中一部分进行。
三、列表的处理
列表经常存放不同结构的数据,因此在处理列表数据前,应先查看一下列表内容的数据结构,使用str函数进行查看
1.选择和显示列表数据
data[1]:选择列表中的第1个元素
2.列表的排序
只能对列表中的某个元素进行排序,而且要使用$符号进行选择
sort(data$one):对data列表中的one元素进行排序
四、数据对象的基本操作
1.查看及设置行和列名
names():可以得到数据对象行和列的名称,可用于列表和数据框,对矩阵无效
row.names()和colnames():可得到数据对象行或列的名称,可用于数据框和矩阵,对列表无效
dimnames():可得到数据对象行和列的名称,先显示行名,后显示列名,对数据框和矩阵有效,对列表无效,因为列表并没有行和列。
可同时使用上述函数对名称进行设置
2.行列转置
可使用t()函数进行行列转置,无论之前是何种数据结构,转置之后均变为矩阵结构。
五、构造数据对象
1.构造列表
将不同数据结构的对象合并在一起的唯一方式是使用列表,创建列表用list()函数。
2.构造数据框
构造数据框使用data.frame()函数,数据框是数据列的集合,数据列可以是数值类型和文本类型,如果是文本类型,数据框将其视为因子,数字格式如果长度不同,则会以NA补齐。
3.构造矩阵
cbind():将向量组成矩阵的列
rbind():将向量组成矩阵的行
如果向量中既有数字也有字符,那么数字将会被转换为字符
此外,一般都是有matrix()函数,matrix(data,nrow=2),必须指定正确的行或列数,也就是说行货列能够被数据个数整除,否则会报错
六、数据对象的转换
as.data.frame():转换为数据框
as.character():转换为因子
as.matrix():转换为矩阵
as.list():转换为列表
as.table():转换为表格
可以通过is.函数判断数据对象的类型,如:is.data.frame判断,返回的是逻辑值。也可以通过class()函数,直接返回数据对象类型。
列表的转换比较麻烦,最好是先转为数据框再转为其他,数据框不能直接转换为表格,需要先转换为矩阵,再转换为表格。
stack()函数对于转换数据框有特别的用处,因为它可以创建一列数值和一列因子的数据框形式。unstack是它的反向操作数据分析师培训
此外,stack()函数还可以加入一些选项,得到更多的效果
例如,有数据框data如下:
height plant
water
1
9 vulgaris
lo
2
11 vulgaris
lo
3
6 vulgaris
lo
4
14 vulgaris
mid
5
17 vulgaris
mid
6
19 vulgaris
mid
7
28 vulgaris
hi
8
31 vulgaris
hi
9
32 vulgaris
hi
10
7
sativa
lo
11
6
sativa
lo
12
5
sativa
lo
13
14
sativa mid
14
17
sativa mid
15
15
sativa mid
16
44
sativa
hi
17
38
sativa
hi
18
37
sativa
hi
有三列数据,一列数值两列因子,我们可做如下操作
> unstack(data,form=height~plant)
sativa vulgaris
1
7
9
2
6
11
3
5
6
4
14
14
5
17
17
6
15
19
7
44
28
8
38
31
9
37
32
> unstack(data,form=height~water)
hi lo mid
1 28 9 14
2 31 11 17
3 32 6 19
4 44 7 14
5 38 6 17
6 37 5 15
> cc<-unstack(data,form=height~water)
> stack(cc,select = c(hi,lo))
values ind
1
28 hi
2
31 hi
3
32 hi
4
44 hi
5
38 hi
6
37 hi
7
9 lo
8
11 lo
9
6 lo
10
7 lo
11
6 lo
12
5 lo
R语言之数据处理的更多相关文章
- [2]R语言在数据处理上的禀赋之——可视化技术
本文目录 Java的可视化技术 R的可视化技术 二维做图利器plot的参数配置 *权限机制 *plot独有的参数 *plot的type介绍 *title介绍 *公共参数集合--par *par的权限机 ...
- [3]R语言在数据处理上的禀赋——par参数详解(一)
本文目录 公共参数列表 par 颜色相关 字体相关 字体大小相关 线条相关 符号相关 线条和符号大小相关 结束 本文首发:program-dog.blogspot.com 注1:本文也曾在csdn发布 ...
- R语言之数据处理常用包
dplyr包是Hadley Wickham的新作,主要用于数据清洗和整理,该包专注dataframe数据格式,从而大幅提高了数据处理速度,并且提供了与其它数据库的接口:tidyr包的作者是Hadley ...
- R语言︱噪声数据处理、数据分组——分箱法(离散化、等级化)
每每以为攀得众山小,可.每每又切实来到起点,大牛们,缓缓脚步来俺笔记葩分享一下吧,please~ --------------------------- 分箱法在实际案例操作过程中较为常见,能够将一些 ...
- R语言:用简单的文本处理方法优化我们的读书体验
博客总目录:http://www.cnblogs.com/weibaar/p/4507801.html 前言 延续之前的用R语言读琅琊榜小说,继续讲一下利用R语言做一些简单的文本处理.分词的事情.其实 ...
- R语言︱异常值检验、离群点分析、异常值处理
每每以为攀得众山小,可.每每又切实来到起点,大牛们,缓缓脚步来俺笔记葩分享一下吧,please~ --------------------------- 笔者寄语:异常值处理一般分为以下几个步骤:异常 ...
- R语言︱函数使用技巧(循环、if族/for、switch、repeat、ifelse、stopifnot)
每每以为攀得众山小,可.每每又切实来到起点,大牛们,缓缓脚步来俺笔记葩分享一下吧,please~ --------------------------- 后续加更内容: 应用一:if族有哪些成员呢?- ...
- R语言数据处理
写在前面:数据处理是数据分析与挖掘必不可少的步骤.下面列出一些常用的数据处理操作. 一.类型转换 用class()查看数据的类型,用as.类型名()进行类型转换. > num <- as. ...
- R语言学习 第八篇:常用的数据处理函数
Basic包是R语言预装的开发包,包含了常用的数据处理函数,可以对数据进行简单地清理和转换,也可以在使用其他转换函数之前,对数据进行预处理,必须熟练掌握常用的数据处理函数,本文分享在数据处理时,经常使 ...
随机推荐
- mysql做主从配置
最近想对公司的数据库做个从数据库,除了每天定时备份外,再多出一个同步数据库,双保险,这样也可以用从数据库就行比较耗资源的数据统计. 技术手段最好能记住,然后就是做笔记了,但是每次都查笔记也不好,希望能 ...
- 使用OxyPlot在WPF中创建图表
目录(?)[+] Using Nuget 包括OxyPlot在你的应用程序的最简单方法是使用NuGet包管理器在Visual Studio 运行 Visual Studio并开始创建一个新的WPF项目 ...
- day22_3-json模块
# 参考资料:# python模块(转自Yuan先生) - 狂奔__蜗牛 - 博客园# https://www.cnblogs.com/guojintao/articles/9070485.html# ...
- PAT甲级——A1116 Come on! Let's C
"Let's C" is a popular and fun programming contest hosted by the College of Computer Scien ...
- Python flask 构建可扩展的restful apl✍✍✍
Python flask 构建可扩展的restful apl 整个课程都看完了,这个课程的分享可以往下看,下面有链接,之前做java开发也做了一些年头,也分享下自己看这个视频的感受,单论单个知识点课 ...
- 【转载】flex布局超过显示省略号
<div class="main"> <div class="content"> <h4 class="name&quo ...
- POJ 1743-POJ - 3261~后缀数组关于最长字串问题
POJ 1743 题意: 有N(1 <= N <=20000)个音符的序列来表示一首乐曲,每个音符都是1~~88范围内的整数,现在要找一个重复的主题.“主题”是整个音符序列的一个子串,它需 ...
- 面试系列15 如何保证Redis的高并发和高可用
就是如果你用redis缓存技术的话,肯定要考虑如何用redis来加多台机器,保证redis是高并发的,还有就是如何让Redis保证自己不是挂掉以后就直接死掉了,redis高可用 我这里会选用我之前讲解 ...
- Django中static文件的引入
1. 在django project中创建 static文件夹 2.settings.py中配置要在 STATIC_URL = '/static/' 下边 STATICFILES_DIRS = [ ...
- Pascal代码自动格式化
const WEnter=; key=; next_line:..WEnter]of string=(';','begin','else','then','repeat','do','var'); k ...