R

基本数据管理[R]

Posted by Adobe on July 15, 2016 | - view

数据是一件麻烦事,一件非常麻烦麻烦的事

上一回,我们主要对数据结构的类型进行了解,同时也提及了不同数据的导入方式。面对一个新建数据集,我们需要对其进行管理以满足实际分析的要求。本次学习,主要涉及一些基本数据管理知识。


创建新变量

基本语句:变量名 <- Formula

#常见的算术运算符
+     
-     
*     
/     
^** 求幂
x%%y  求余(x mod y)。5%%2的结果为1
x%/%y 整数除法。5%/%2的结果为2

若要新建变量(求和),并整合到原始数据集,可采用transform()函数

jay <- data.frame(x1= c(1,2,3),x2= c(2,3,4))
jay <- transform( jay,sumx= x1+x2)

变量的重编码 实际工作中,你可能会面对以下情景:

  • 将连续型变量修改为类别值;
  • 将误编码的值替换为正确值;
  • 基于一组分数线创建一个表示及格/不及格的变量

此时多采用逻辑运算符表达式。

#常见的逻辑运算符
<      小于
<=     小于或等于
>      大于
>=     大于或等于
==     严格等于*
!=     不等于
!x     x
x | y  xy
x & y  Xy
isTRUE(x) 测试x是否为TRUE

variable[condition] <- expression 将仅在condition的值为TRUE时执行赋值。

jay$x3[jay$x1==2]<-4

变量的重命名

  • data<-edit(data)
  • fix(data)
  • rename() rename(dataframe,c(oldnames="newname",oldnames="newname",...)
  • names(data)[1]<-"Test"

缺失值

缺失值以符号NA(Not Available,不可用)表示。is.na()允许你检测缺失值是否存在。

重编码某些值为缺失值

在分析中排除缺失值

多数的数值函数都有na.rm=TRUE选项,可在计算前移除缺失值并使用剩余值进行计算。na.omit()可以删除所有含有缺失数据的行。


日期值

as.Date(x,"input_format")

#日期格式
%d 数字表示的日期(0~31) 01~31
%a 缩写的星期名           Mon
%A 非缩写星期名           Monday
%m 月份(00~12          00~12
%b 缩写的月份             Jan
%B 非缩写月份             January
%y 两位数的年份           07
%Y 四位数的年份           2007

-使用函数format(x,format="output_format")来输出指定格式的日期值,并且可以提取日期值中的某些部分

-使用函数difftime()来计算时间间隔


类型转换

通过判断数据的类型或者将其转换为指定类型,满足后续分析。

#类型转换函数

判断                       
is.numeric()            as.numeric()
is.character()          as.character()
is.vector()             as.vector()
is.matrix()             as.matrix()
is.data.frame()         as.data.frame()
is.factor()             as.factor()
is.logical()            as.logical()

数据排序

order()函数对一个数据框进行排序,默认为升序。


数据集的合并

添加列

  • 横向合并两个数据框(数据集),使用merge()函数。

merge(dataframeA,dataframeB,by="ID")

  • 若直接横向合并,且不需要指定公共索引,可直接使用cbind()函数。注意每个对象要有相同的行数,且以相同顺序排序。

添加行

使用rbind()函数,两个数据框必须拥有相同的变量。


数据集取子集

选入(保留)变量

数据框中的元素可通过dataframe[row indices, column indices]进行访问。例如data <-mydata[,c(4:5)]

剔除(丢弃)变量

data<-mydata[c(-1,-2)] #舍弃第1、第2个变量

同样,data<-mydata$1<-mydata$2<-NULL

选入观测

which()函数可返回向量下标

subset()函数

选择变量和观测最简单的方法

随机抽样

sample()函数