setwd("d:/r/r-data/")
data=read.table("salary.txt",header=T)
attach(data)
mean(Salary) #工资的平均值
length(Salary) #数据个数
cumsum(Salary) #累加

salary1=cut(Salary,3) #将数据分为三组
table(salary1)

salary1=cut(Salary,3,labels=c("low","medium","high")) #给每个组设置标签
table(salary1)

breakpoints=c(0,30,40,50,60,70)
salary2=cut(Salary,breaks=breakpoints) #按区间进行分组
table(salary2)

pic=function(x){ #写一个存储过程
par(mfrow=c(2,2)) #绘图区域分割为四部分
hist(x) #直方图
dotchart(x) #点图
boxplot(x) #箱线图
qqnorm(x);qqline(x)#正态概率图
par(mfrow=c(1,1)) #恢复单图区域
}
pic(Salary) #调用编写好的函数pic()

data=read.table("d:/r/r-data/salary.txt",header=T,stringsAsFactors =F)
names(data)=c("CITY","WORK","PRICE","SALARY")
names(data) #用names函数来修改标签名

data2=data[1,3]
data3=data[-1,-3] #删除第一行第三列

attach(data)
The following object is masked from data (position 3):
CITY,PRICE,SALARY,WORK
data$SALARY=replace(SALARY,SALARY>65,NA) #将工资大于65的值改为NA
is.na(SALARY) #查找缺失值
sum(is.na(SALARY))

complete.cases(data$SALARY) #查找缺失值

data$PRICE=replace(PRICE,PRICE>80,NA)
install.packages("mice")
library(mice) #通过Mice包中的md.pattern()函数来显示缺失值模式
md.pattern(data)

install.packages("VIM")
library(VIM)
aggr(data) #通过VIM包的aggr函数来绘制数据缺失模式图

data1=data[complete.cases(data$SALARY),]
dim(data1)
data2=data[!is.na(SALARY),] #!就是非
dim(data2)
#删除缺失样本

data[is.na(data)]=mean(SALARY[!is.na(SALARY)])
#mean函数对非NA值的SALARY数据求平均值

a=c("HONGKONG",1910,75.0,41.8)
data4=rbind(data,a) #rbind按行将数据连接起来 #cbind按列将数据连接起来
data4[14:16, ]

weight=c(150,135,210,140) #数据型向量
height=c(65,61,70,65)
gender=c("F","F","M","F") #字符型向量
stu=data.frame(weight,height,gender)
row.names(stu)=c("Alice","Bob","Cal","David")
#通过data.frame函数构造数据框

index=list("City"=data$City,"Index"=1:15)
index$City
data.index=merge(data,index,by="City")
#使用merge函数将index和data合并

data[data$Salary>65,] #提取工资大于65的
data[c(2,4),] #读取第二行和第四行
data[data$Price==65.6,] #价格等于65.6的,注意要用双==
order.salary=order(stu$weight) #进行排序
order.salary

rank(data$Salary) #根据向量的秩进行排序

t(data) #进行转置

x=data.frame(A=1:4,B=seq(1.2,1.5,0.1),C=rep(1,4))
x
x1=stack(x)
x1 #把一个数据框转换成两列
unstack(x1,from=values~ind)
#还原回去

library(reshape2)
melt(x) #使用reshape2包中的melt函数将数据框转化为两列

data(airquality)
str(airquality) #显示对象的内部结构,功能类似于summary()
longdata=melt(airquality,id.vars=c("Ozone","Month","Day"),measure.vars=2:4)
str(longdata)

R语言学习笔记(数据预处理)的更多相关文章

  1. R语言学习笔记(六): 列表及数据框的访问

    List R语言中各组件的名称叫做标签(tags),访问列表有3种方法: j$salary 通过标签名字访问,只要不引起歧义,可以只写出前几个字母. j[['sal']] 夹在两个中括号时引号里的标签 ...

  2. R语言学习笔记:读取前n行数据

    常规读取 一般我们读取文件时都会读取全部的文件然后再进行操作,因为R是基于内存进行计算的. data <- read.table("C:\\Users\\Hider\\Desktop\ ...

  3. R语言学习笔记之: 论如何正确把EXCEL文件喂给R处理

    博客总目录:http://www.cnblogs.com/weibaar/p/4507801.html ---- 前言: 应用背景兼吐槽 继续延续之前每个月至少一次更新博客,归纳总结学习心得好习惯. ...

  4. R语言学习笔记(二)

    今天主要学习了两个统计学的基本概念:峰度和偏度,并且用R语言来描述. > vars<-c("mpg","hp","wt") &g ...

  5. R语言学习笔记:基础知识

    1.数据分析金字塔 2.[文件]-[改变工作目录] 3.[程序包]-[设定CRAN镜像] [程序包]-[安装程序包] 4.向量 c() 例:x=c(2,5,8,3,5,9) 例:x=c(1:100) ...

  6. R语言学习笔记—K近邻算法

    K近邻算法(KNN)是指一个样本如果在特征空间中的K个最相邻的样本中的大多数属于某一个类别,则该样本也属于这个类别,并具有这个类别上样本的特性.即每个样本都可以用它最接近的k个邻居来代表.KNN算法适 ...

  7. R语言学习笔记-机器学习1-3章

    在折腾完爬虫还有一些感兴趣的内容后,我最近在看用R语言进行简单机器学习的知识,主要参考了<机器学习-实用案例解析>这本书. 这本书是目前市面少有的,纯粹以R语言为基础讲解的机器学习知识,书 ...

  8. R语言学习笔记(一)

    1.不同的行业对数据集(即表格)的行和列称谓不同,统计学家称其为观测(observation)和变量(variable): 2.R语言存储数据的结构: ①向量:类似于C语言里的一位数组,执行组合功能的 ...

  9. R语言学习笔记

    向量化的函数 向量化的函数 ifelse/which/where/any/all/cumsum/cumprod/对于矩阵而言,可以使用rowSums/colSums.对于“穷举所有组合问题" ...

  10. R语言学习笔记:分析学生的考试成绩

    孩子上初中时拿到过全年级一次考试所有科目的考试成绩表,正好可以用于R语言的统计分析学习.为了不泄漏孩子的姓名,就用学号代替了,感兴趣可以下载测试数据进行练习. num class chn math e ...

随机推荐

  1. artDialog的几种基本使用

    1.confirm形式 var dialog=art.dialog({ lock:true, content: '请确认,您是否要删除选中的用吗?', icon: 'question', ok: fu ...

  2. CSS3属性之一:border-radius

    语法: border-radius : none | <length>{1,4} [ / <length>{1,4} ]? 相关属性: border-top-right-rad ...

  3. 学习ReactNative笔记整理一___JavaScript基础

    学习ReactNative笔记整理一___JavaScript基础 ★★★笔记时间- 2017-1-9 ★★★ 前言: 现在跨平台是一个趋势,这样可以减少开发和维护的成本.第一次看是看的ReactNa ...

  4. IOS 保存图片至相册

    IOS 保存图片至相册   应用中有时我们会有保存图片的需求,如利用UIImagePickerController用IOS设备内置的相机拍照,或是有时我们在应用程序中利用UIKit的 UIGraphi ...

  5. [TYVJ] P1001 第K极值

    第K极值   背景 Background 成成第一次模拟赛 第一道    描述 Description 给定一个长度为N(0<n<=10000)的序列,保证每一个序列中的数字a[i]是小于 ...

  6. Unix,windows和Mac中的换行

    Unix 系统里,每行结尾只有“<换行>”,即“\n”:Windows系统里面,每行结尾是“<换行><回车 >”,即“\r\n”:Mac系统里,每行结尾是“< ...

  7. php用apc实现的临界区 解决并发,资源互斥同步访问

    在面对线程或进程的互斥同步的控制问题时,常用的解决办法是:临界区,互斥锁,信号量 临界区保证在某一时刻只有一个线程能够访问到所需资源的方法. 任何时候,只能至多有一个线程处于临界区中.如果多个线程要求 ...

  8. dig命令(转载)

    dig命令使用大全(linux上域名查询) 可以这样说,翻译本篇文档的过程就是我重新学习DNS的过程,dig命令可以帮助我们学习DNS的原理,配置,以及其查询过程.以前使用dig仅仅是查询一下A记录或 ...

  9. yum笔记

    rpm --> yum HTML: HyperText Mark LanguageXML: eXtended Mark Language XML, JSON: 半结构化的数据 yum仓库中的元数 ...

  10. WEB程序会话管理--HttpSession和Cookie

    WEB应用的会话管理的原理: 由于WEB应用的请求和响应是基于HTTP的,而HTTP由属于无状态的通信协议,只能记录本次请求的信息,因此服务器不会记住这一次的请求和下一次请求的关系.所以会话管理的原理 ...