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. CSS常见BUG

    CSS Hack IE条件注释: 所有IE:<!--[if IE]> css code <![endif]--> IE6以上:<!--[if gt IE 6]> c ...

  2. NAS4Free 安装配置(三)基本配置

    基本配置 在浏览器中输入地址,进入管理界面(我的是http://192.168.0.10) 登录界面 初始用户名:admin,初始密码:nas4free 首页 进入基本配置 这里可以选择语言,有中文, ...

  3. python 画正弦曲线

    要画正弦曲线先设定一下x的取值范围,从0到2π.要用到numpy模块. numpy.pi 表示π numpy.arange( 0 , 2π ,0.01)  从0到2π,以0.01步进. 令 x=num ...

  4. 深入理解 静态类和静态字段(C# 基础)

    序言 以前,总是被提醒,在编程过程中尽量少用静态变量,数据丢失什么的,今天有空,禁不住对静态变量的强烈好奇,跟我一起了解下静态家族的内幕吧. 静态类 定义 静态类与非静态类的重要区别在于静态类不能实例 ...

  5. commons.fileupload简单应用

    导入包: commons-fileupload-1.3.1.jar commons-io-2.4.jar commons-fileupload依赖于commons-io,commons-io-2.4必 ...

  6. android的微信签名

    目标: 已经在微信官网申请了账号了,想要在上面开发应用,必须首先对应用进行审核.在审核之前,需要填写应用的相关信息,包括名称.图标.用途说明.签名等. 下面介绍如何获取程序的签名. 解决方案: 选择程 ...

  7. JSP页面中文参数传递get和post方法分析

    原文 http://developer.51cto.com/art/200907/133499.htm 在项目中,我们经常遇到需要在JSP页面切换中传递中文字符.这主要有两种方式. ◆URL方式 例如 ...

  8. [置顶] Android学习系列-Android中解析xml(7)

    Android学习系列-Android中解析xml(7) 一,概述 1,一个是DOM,它是生成一个树,有了树以后你搜索.查找都可以做. 2,另一种是基于流的,就是解析器从头到尾解析一遍xml文件.   ...

  9. Eclipse代码提示功能设置(Java & Eclipse+CDT C/C++)

    http://developer.51cto.com/art/200907/136242.htm http://blog.chinaunix.net/u/21684/showart_462486.ht ...

  10. windows phone中三种解析XML的方法

    需求如下, 项目需要将一段xml字符串中的信息提取出来 <?xml version=""1.0"" encoding=""UTF-8& ...