R语言—数据基础及练习
## 创建leadership数据框
manager <- c(1,2,3,4,5)
date <-c("10/24/08","10/28/08","10/1/08","10/12/08","5/1/09")
country <- c("US","US","UK","UK","UK")
gender <- c("M","F","F","M","F")
age <- c(32,45,25,39,99)
q1 <- c(5,3,3,3,2)
q2 <- c(4,5,5,3,2)
q3 <- c(5,2,5,4,1)
q4 <- c(5,5,5,NA,2)
q5 <- c(5,5,2,NA,1)
leadership <- data.frame(manager,date,country,gender,age,q1,q2,q3,q4,q5,stringsAsFactors = FALSE)
leadership
##创建新变量
leadership <- transform(leadership,q6=q1+q2,q7=(q1+q2)/2)
##变量的重编码
leadership <- within(leadership,{
agecat <- NA
agecat[age>75] <- "Elder"
agecat[age >=55 & age <=75] <- "Middle Aged"
agecat[age <55] <- "Young"})
leadership
##变量的重命名
install.packages("plyr")
library(plyr)
leadership <- rename(leadership, c(manager="managerID",date="testDate"))
leadership
##缺失值
缺失值是不可比较的
缺失数据需在分析前重新编码为缺失值
is.na(leadership[,6:10])
##在分析中排除缺失值
含有缺失值的算术表达式和函数的计算结果也是缺失值
sum(q4,na.rm=T)
## na.omit()移除所有含有缺失值的观测
leadership
mydata <- na.omit(leadership)
mydata
##日期值
as.Date()函数 将以字符串形式输入R中的日期值转化为以数值形式存储的日期变量
myformat <- "%m/%d/%y"
leadership$testDate <- as.Date(leadership$testDate,myformat)
leadership
Sys.Date()#返回当天的日期
date()#返回当前的日期和时间
DOB <- as.Date("1997-08-21")
today <- Sys.Date()
difftime(today,DOB,units="weeks")
##类型转换
is.datatype() 允许根据数据的具体类型加以不同的方式处理
as.datatype() 分析前先将数据进行转化
##数据排序
order() 默认的排序顺序--升序
在排序变量前加一个减号即可得到降序的排序结果
newdata <- leadership[order(leadership$age),]
newdata
##数据集的合并
向数据框添加列 cbind() #不需要一个公共索引
向数据框添加行 rbind() #注意多余变量的处理
merge(dataframeA,dataframeB,by="") #横向合并,通过一个或多个共有变量进行联结
##数据集取子集
选入(保留)变量、剔除(丢弃)变量 #逻辑向量&比较运算符
选入观测
#subset()函数
newdata <- subset(leadership, age >= 35 | age < 24, select=q1:q4)
newdata
随机抽样:从数据集中(有放回或无放回地)抽取大小为n的一个随机样本
#sample()函数
mysample <- leadership[sample(1:nrow(leadership),3,replace=F),]
mysample
练习题
一.将1、2、...20构成两个5*4阶的矩阵,其中矩阵A是按列输入,矩阵B按行输入
1. 将A和B按照行合并;
2. 将A和B转化为数据框DA和DB,并将他们的列命名为("ID","A1","A2","A3");
3. 以”ID”为条件将DA和DB进行匹配;
4. 在DA中选取“A2”列大于12且小于15的子集。
A=matrix(1:20,nrow=5,byrow=F)
A
B=matrix(1:20,nrow=5,byrow=T)
B

#(1)
rbind(A,B)

#(2)
colnames(A)=c("ID","A1","A2","A3")
DA=data.frame(A)
DA
colnames(B)=c("ID","A1","A2","A3")
DB=data.frame(B)
DB

#(3)
merge(DA,DB,by="ID")

#(4)
newdata=subset(DA,A2>12&A2<15,select=ID:A3)
newdata

二.随机生成服从均值为2,标准差为3的正态分布的长度为5的向量x
- 将x降序排列,生成向量y
- 采用有放回抽样的方式从y中抽取3个元素
- 采用不放回抽样的方式,以概率prob=c(0.1,0.05,0.2,0.5,0.15)从中抽取3个元素。
#均值为2,标准差为3,长度为5的正态分布
x = rnorm(5,2,3)
x

#(1)
y=x[order(-x)]
y

#(2)
y[sample(1:5,3,replace=T)]
y

#(3)
y[sample(1:5,3,replace=F,prob=c(0.1,0.05,0.2,0.5,0.15))]
y

R语言—数据基础及练习的更多相关文章
- R语言语法基础二
R语言语法基础二 重塑数据 增加行和列 # 创建向量 city = c("Tampa","Seattle","Hartford"," ...
- R语言数据接口
R语言数据接口 R语言处理的数据一般从外部导入,因此需要数据接口来读取各种格式化的数据 CSV # 获得data是一个数据帧 data = read.csv("input.csv" ...
- R语言语法基础一
R语言语法基础一 Hello world #这里是注释 myString = "hello world" print(myString) [1] "hello world ...
- R语言数据的导入与导出
1.R数据的保存与加载 可通过save()函数保存为.Rdata文件,通过load()函数将数据加载到R中. > a <- 1:10 > save(a,file='d://data/ ...
- R语言 数据重塑
R语言数据重塑 R语言中的数据重塑是关于改变数据被组织成行和列的方式. 大多数时间R语言中的数据处理是通过将输入数据作为数据帧来完成的. 很容易从数据帧的行和列中提取数据,但是在某些情况下,我们需要的 ...
- R语言数据预处理
R语言数据预处理 一.日期时间.字符串的处理 日期 Date: 日期类,年与日 POSIXct: 日期时间类,精确到秒,用数字表示 POSIXlt: 日期时间类,精确到秒,用列表表示 Sys.date ...
- 最棒的7种R语言数据可视化
最棒的7种R语言数据可视化 随着数据量不断增加,抛开可视化技术讲故事是不可能的.数据可视化是一门将数字转化为有用知识的艺术. R语言编程提供一套建立可视化和展现数据的内置函数和库,让你学习这门艺术.在 ...
- 第五篇:R语言数据可视化之散点图
散点图简介 散点图通常是用来表述两个连续变量之间的关系,图中的每个点表示目标数据集中的每个样本. 同时散点图中常常还会拟合一些直线,以用来表示某些模型. 绘制基本散点图 本例选用如下测试数据集: 绘制 ...
- 第四篇:R语言数据可视化之折线图、堆积图、堆积面积图
折线图简介 折线图通常用来对两个连续变量的依存关系进行可视化,其中横轴很多时候是时间轴. 但横轴也不一定是连续型变量,可以是有序的离散型变量. 绘制基本折线图 本例选用如下测试数据集: 绘制方法是首先 ...
- R语言编程艺术(3)R语言编程基础
本文对应<R语言编程艺术> 第7章:R语言编程结构: 第9章:面向对象的编程: 第13章:调试 ============================================== ...
随机推荐
- The second day learning summary
1.什么是接口测试? 接口测试是测试系统组件间接口的一种测试.接口测试主要用于外部系统与系统之间以及内部各个子系统之间的交互点,定义特定的交互点,然后通过这些交互点来,通过一些特殊的规则也就是协议,来 ...
- 微软官方发布的C#开源、免费、实用的Windows工具箱
前言 今天分享一款由微软官方发布的C#开源.免费.实用的Windows工具箱(帮助用户调整和简化Windows系统的体验,从而提高工作效率):Microsoft PowerToys. 项目介绍 Mic ...
- Intellij IDE 对接SVN
1.安装SVN(SVN安装包见附件) 注意安装时需要选择第二个选项进行安装 2.安装SVN中文包(见附件) 安装完成后随便找个文件夹右键确认SVN安装是否生效 3.Intellij IDE得Setti ...
- Linux驱动开发笔记(六):用户层与内核层进行数据传递的原理和Demo
前言 驱动作为桥梁,用户层调用预定义名称的系统函数与系统内核交互,而用户层与系统层不能直接进行数据传递,进行本篇主要就是理解清楚驱动如何让用户编程来实现与内核的数据交互传递. 温故知新 设备节 ...
- VSFTPD2.3.4(笑脸漏洞)复现
vsftpd2.3.4笑脸漏洞复现 目标服务器:metasploitable2(192.168.171.11) 渗透机:Kali(192.168.171.21) 方法一:手动复现 首先用kali扫描一 ...
- Mybatis 源码2——SqlSession,执行器和一级缓存
一丶 SqlSessionFactoryBuilder,SqlSessionFactory,sqlSession mybatis 获取sqlSession是通过SqlSessionFactory获取的 ...
- .NET Web应用配置本地IIS(实现Visual Studio离线运行与调试)
前言: 因为项目程序需要频繁的修改,然后每次修改以后都要重新编译才能查看到修改的效果.而且有时候前端也需要及时的对接我们的接口,导致每次修改一点东西都要发布一次,这样子对于开发者而言是十分的浪费时间, ...
- 全文手敲代码,教你用Java实现扫雷小游戏
摘要:本程序共封装了五个类,分别是主类GameWin类,绘制底层地图和绘制顶层地图的类MapBottom类和MapTop类,绘制底层数字的类BottomNum类,以及初始化地雷的BottomRay类和 ...
- 云图说|图解DGC:基于华为智能数据湖解决方案的一体化数据治理平台
摘要:数据湖治理中心DGC,帮助企业快速构建从数据集成到数据服务的端到端智能数据系统,消除数据孤岛,统一数据标准,加快数据变现,实现数字化转型. 本文分享自华为云社区<[云图说]第232期 图解 ...
- maptalks点线面图形样式设置经验总结
个人偏好使用mapbox,但是架不住人多,被使用maptalks,然而的文档非常感人,让人泪崩三千里-- maptalks图形样式设置,通过symbol设置 设置symbol的,可以直接在 图形(Ma ...