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. windows安装Apache HTTP服务器报错:无法启动,因为应用程序的并行配置不正确

    Apache HTTP服务器安装后报:无法启动,因为应用程序的并行配置不正确-(已解决)   0条评论 [摘要:本创做品,出自 “深蓝的blog” 专客,迎接转载,转载时请务必说明出处,不然有权穷究版 ...

  2. 如何从数据库(实体提供者)读取安全用户(转自http://wiki.jikexueyuan.com/project/symfony-cookbook/entity-provider.html)

    Symfony 的安全系统可以通过活动目录或开放授权服务器像数据库一样从任何地方加载安全用户.这篇文章将告诉你如何通过一个 Doctrine entity 从数据库加载用户信息. 前言 在开始之前,您 ...

  3. ASP转PHP手记

    打算将动易网站管理系统移植到PHP环境中,寻寻觅觅了很多PHP内容管理网站,发现网上有动易转PHPCMS的代码,所以就拿定注意用PHPCMS的在google上找到一转换程序,动手做来还成功了,现将此次 ...

  4. secure_file_priv 配置项对数据导入导出的影响

    secure_file_priv  mysqld 用这个配置项来完成对数据导入导出的限制. 例如我们可以通过 select * from tempdb.t into outfile '/home/my ...

  5. stm32的FSMC

    之前用的stm32f103rbt6,它是100引脚以内的,不带FSMC.驱动液晶屏或者SRAM要自己写时序方面的程序,比较麻烦.后来换成stm32f103zet6,带有FSMC.不过在学习FSMC的时 ...

  6. 关于Fragment与Activity的想法

    View,Fragment,Activity,ListView等都会涉及到Layout文件 不要从Layout来考虑,而是从Activity,Fragment,来考虑,Layout只是他们的一个属性 ...

  7. ajax get/post

    xmlhttp.open("POST", url, true); xmlhttp.setRequestHeader("Content-Type", " ...

  8. cf D. Alternating Current

    http://codeforces.com/contest/344/problem/D #include <cstdio> #include <cstring> #includ ...

  9. Android开源中国客户端学习 (自定义View)左右滑动控件ScrollLayout

    左右滑动的控件我们使用的也是非常多了,但是基本上都是使用的viewpager 等 android基础的控件,那么我们有么有考虑过查看他的源码进行定制呢?当然,如果你自我感觉非常好的话可以自己定制一个, ...

  10. EBS收单方/收货方

    select rt.name, hcas.org_id from ar.hz_cust_acct_sites_all hcas, ar.hz_cust_site_uses_all hcsu, ra_t ...