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语言之数据处理的更多相关文章

  1. [2]R语言在数据处理上的禀赋之——可视化技术

    本文目录 Java的可视化技术 R的可视化技术 二维做图利器plot的参数配置 *权限机制 *plot独有的参数 *plot的type介绍 *title介绍 *公共参数集合--par *par的权限机 ...

  2. [3]R语言在数据处理上的禀赋——par参数详解(一)

    本文目录 公共参数列表 par 颜色相关 字体相关 字体大小相关 线条相关 符号相关 线条和符号大小相关 结束 本文首发:program-dog.blogspot.com 注1:本文也曾在csdn发布 ...

  3. R语言之数据处理常用包

    dplyr包是Hadley Wickham的新作,主要用于数据清洗和整理,该包专注dataframe数据格式,从而大幅提高了数据处理速度,并且提供了与其它数据库的接口:tidyr包的作者是Hadley ...

  4. R语言︱噪声数据处理、数据分组——分箱法(离散化、等级化)

    每每以为攀得众山小,可.每每又切实来到起点,大牛们,缓缓脚步来俺笔记葩分享一下吧,please~ --------------------------- 分箱法在实际案例操作过程中较为常见,能够将一些 ...

  5. R语言:用简单的文本处理方法优化我们的读书体验

    博客总目录:http://www.cnblogs.com/weibaar/p/4507801.html 前言 延续之前的用R语言读琅琊榜小说,继续讲一下利用R语言做一些简单的文本处理.分词的事情.其实 ...

  6. R语言︱异常值检验、离群点分析、异常值处理

    每每以为攀得众山小,可.每每又切实来到起点,大牛们,缓缓脚步来俺笔记葩分享一下吧,please~ --------------------------- 笔者寄语:异常值处理一般分为以下几个步骤:异常 ...

  7. R语言︱函数使用技巧(循环、if族/for、switch、repeat、ifelse、stopifnot)

    每每以为攀得众山小,可.每每又切实来到起点,大牛们,缓缓脚步来俺笔记葩分享一下吧,please~ --------------------------- 后续加更内容: 应用一:if族有哪些成员呢?- ...

  8. R语言数据处理

    写在前面:数据处理是数据分析与挖掘必不可少的步骤.下面列出一些常用的数据处理操作. 一.类型转换 用class()查看数据的类型,用as.类型名()进行类型转换. > num <- as. ...

  9. R语言学习 第八篇:常用的数据处理函数

    Basic包是R语言预装的开发包,包含了常用的数据处理函数,可以对数据进行简单地清理和转换,也可以在使用其他转换函数之前,对数据进行预处理,必须熟练掌握常用的数据处理函数,本文分享在数据处理时,经常使 ...

随机推荐

  1. hdu多校第一场 1013(hdu6590)Code 凸包交

    题意: 给定一组(x1,x2,y),其中y为1或0,问是否有一组(w1,w2,b),使得上述的每一个(x1,x2,y)都满足x1*w1+x2*w2+b在y=1时大于0,在y=-1时小于0. 题解: 赛 ...

  2. linux下phpstudy安装

    linux下phpstudy安装 一.总结 一句话总结: 就是下载然后一步步用指令安装即可 二.linux下phpstudy安装 参考:linux下phpstudy安装https://www.cnbl ...

  3. System.Web.Mvc.HttpDeleteAttribute.cs

    ylbtech-System.Web.Mvc.HttpDeleteAttribute.cs 1.程序集 System.Web.Mvc, Version=5.2.3.0, Culture=neutral ...

  4. HDU-2095-find your present (2)-位或/STL(set)

    In the new year party, everybody will get a "special present".Now it's your turn to get yo ...

  5. vue之.native修饰符

    .native 修饰符就是用来注册元素的原生事件而不是组件自定义事件的 比如:自定义 Button.vue 组件 <template> <button type="butt ...

  6. Java学习之创建对象内存使用机制

    Java内存空间分两种,一种是栈内存,有多个,一种是堆内存,只有一个,在堆内存中又有一块方法区. 方法区中存储的是:类的信息(类名,类的直接父类,类的访问修饰符),类变量,类方法代码,实例方法代码,常 ...

  7. 02-python 学习第二天

    今天学习了以下几个方面的内容,虽然部分内容不能理解,跟着老师写出了代码. 列表.元组操作 字符串操作 字典操作 集合操作 文件操作 字符编码与转码 程序练习1:购物车程序 请闭眼写出以下程序. 程序: ...

  8. vue表格之tableHeaderColor(修改表头背景色)

    <el-table :header-cell-style="tableHeaderColor"></el-table> // 更改表头样式 tableHea ...

  9. CSS清除默认边距

    body,div,dl,dt,dd,ul,ol,li,h1,h2,h3,h4,h5,h6,pre,code,form,fieldset,legend,input,textarea,p,blockquo ...

  10. T2960 全民健身【思维Dp,预处理,差分优化】

    Online Judge:YCJSOI Label:Dp,思维题,预处理,滚动优化 题目描述 乐乐现在掌管一个大公司,办公楼共有n层.为了增加员工的身体素质,他决定在每层楼都建立一个活动室,活动室分乒 ...