R语言笔记文档

2019.11.24
R语言的安装
工作目录查看与更改
变量的三种赋值
如何查看R语言帮助 ? args
基础数据类型
基本数据类型 因子、数据框、数组、矩阵、列表、向量

2019.11.25 晚
读取数据
read.csv的属性
colname 取列名
sapply(q, class) ##得到每列的数据类型
取子集-向量
三种取子集 中括号 双中括号 $
三种索引方式 数字 逻辑 名字
对子集进行赋值
逻辑运算 与或非 & | !
向量跟向量之间合并成数据框

cbind rbind 组成矩阵
data.frame(a,b,stringsAsFactors = F)
去缺失值
complete.cases(x,y) #找到x,y两列中的是否有NA值,有返回F
na.omit() ##针对的是数据框有NA直接去掉
综合练习
取数据框中数学成绩大于60的数据
取数学、语文、英语都大于60的数据
将五个的数学和语文成绩改成60
q[q$Temp>90,]$Temp = q[q$Temp>90,]$Temp + 1000
创建一个列sum,求三科成绩 x$sum=x$数据+x$英语+x$语文
求总分跟均值的差 x$sum<-x$sum-mean(x$sum)
搜索路径的理解
search ##查看搜索路径
attach ##tach进第2个搜索路径中
detach
libray ##加载进第2个搜索路径中
detach("Package.woe")
with(airquality,hist(Ozone)) ##也是让你少写,第一个参数是指定你的数据框,第二个参数就不需要你指定数据框了
data() ##查看R语su言包含的可操作的数据是哪些

2019.11.26早
向量的运算 https://www.cnblogs.com/ljhdo/p/4421644.html
基本数据运算函数
创建随机数
#rnorm dnorm pnorm qnorm ##rdpq引导的一系列分布随机数
#set.seed() ##随机播种
#sample(letters,19,replace = T) #取19个随机数,放回抽取
日期和时间 https://www.cnblogs.com/ljhdo/p/4804113.html
一,系统当前的日期和时间
sys.Date() sys.time() date()
二,把文本解析成日期和时间
as.Date(x,format) strptime(x,format,tz="") as.POSIXct()
三,把日期和时间格式化为文本
format(today,format='%Y-%m-%d')
strftime(today,format='%Y-%m-%d')格式化日期
四,日期的比较
1,时间和数字相加
2,时间比较 t2时间大t1
difftime(t2,t1,units = "year")
3,时间序列
seq(t3,by="2 month",length.out=12)
seq(t1,t3,"year")
五,泛时间函数
weekdays()
months() ##一年的第几月
quarters()
字符处理
链接字符 paste("cc","qq",sep="&") 属性:sep是作用于向量之间、collapse是作用于向量内部的
分割字符 strsplit(c,"d")-->返回的是list 属性:fixed = T 表达是固定模式,不采用正则表达
抽取[替换]字符 substr("eeqeqq",2,4)<-"ss"
替换字符 chartr sub gsub
匹配字符
grep("er",x) grepl("er",x) ##返回的是单元格
regexpr("er",x) gregexpr("er",x) #返回的是匹配的位置
match(x,table,nomatch=NA_integer_) ##在一大堆的可选项,筛选出你想要的选项
1:10 %in% c(1,2,4,9) ##实现的功能和上面一样的 !!很好用 很实用

2019.11.27
控制结构
判断语句
if(){}else{} 这里
ifelse(rbinom(10,1,0,5),yes='字',no='花')
loan = c("A","B","D","C","C","B","A","B","A","D")
ifelse(loan=="B",NA,ifelse(loan=="D","否","是"))
循环语句
for () {}

循环嵌套
m = matrix(1:6,2,3)
for (i in 1:2) {
for (j in 1:3){
print(m[i,j])
}
}

无限循环 配合break
repeat一般不使用,偶尔会用到,适用无限逼近

next ,return
next可以用于如何一种循环,用来跳过某一次迭代,类似python-continue
return也可以退出循环,主要用于退出函数,会结束函数,返回一个值

9*9乘法表
1:9 %*% t(1:9)
t(1:9),原本是9行一列,转置就变成了1行9列
会将前面也变成矩阵

2019.11.28
函数 关键字:function
函数的嵌套
循环函数
lapply:针对的是列表,中的每个元素,对输出不简化
lapply(x,mean)
sapply:针对的是列表,中的每个元素,对输出简化
lapply(x,colmean)
quantile(1:10,probs = c(0,1)) 求分位数
apply(x,方向,函数):针对的是数据框或者数组
rowMeans()-->apply(x,1,mean)
rowSums()-->apply(x,1,sum)
colMeans()-->apply(x,2,mean)
colSums()-->apply(x,2,mean)
数组是:2*3*4的数据,apply(x,c(1:2),mean)
返回的数据就是2*3的数据,是对边界的高进行压缩
tapply:针对的是向量
tapple(x,Index,fun)
Index:是对向量x进行分组,然后执行fun函数
q=c(1:10,11:20)
tapply(q,gl(2,10),mean)
split:针对的是数据框,进行分组,输出list
split(x,f,drop=T) 参数三是否要去掉空等级
qq = airquality
lair = split(qq,qq$Month)
sapply(lair,colMeans,na.rm=T) ##colmean是用于数据框的
interaction()## 对向量向量取交集

数据的清洗
排序
sort() ##输出数值
order() ##输出升序的数值所对应索引值
x[order[x]] = 可以用在数据框中使用
arrange(qq,desc(qq$math),qq$eng)
##需要安装plyr 数据按math降序排序,再按eng升序排序

分箱 install("Hmsic")
自定义分箱
等宽分箱 --》区间是范围一样
cut(x,3,label=c()) ##将数据等宽分成3部分,label设置标签,include.lowest=T --》切割点包含最小值
等深分箱 --》区间中的包含的数据一样
cut2(x,m=3) ##将数据等深分成三部分

excel的使用
外部包 openxlsx
read.xlsx("文件名",sheet) ##sheet可以采用数字页,或者页的文件名字
convertToDateTime(x2$x1) ##读文件,日期格式会变成数值,采用这个进行转换成日期格式

sql语句的汇总
sinfo = data.frame(id=1:4,name=c("hmm","cc","qq","bbc"))
smath = data.frame(id1=1:3,math=94:92)
seng = data.frame(id=1:5,math1=94:90)

##链接表的几种方式
rbind(seng,smath) ##要求的是列名字都相同

#外部包sqldf sql语句
library(sqldf)
sqldf("select * from sinfo,smath") ##笛卡尔乘积
sqldf("select * from sinfo union all select * from smath") ##union链接表,列要相同
sqldf("select * from sinfo left join smath on sinfo.id=smath.id") #left join
sqldf("select * from sinfo except select * from smath") ##表1 - 表2

##内部包dpldr
merge(sinfo,smath,by.x = "id",by.y = "id1")
merge(sinfo,seng,by = "id")
merge(sinfo,seng,by = "id",all=T) ##all全链接,和left join一样
##外部包dplyr
library(dplyr)
inner_join(sinfo,smath,by=c("id1","id"))

维度转换 --》外部包library(reshape2)
二维转一维
melt(soce,id.vars = c("id","name","math","eng"),measure.vars = c("math","eng"))
一维转二维
dcast(q,id+name+math~variable,value.var = "value")
dcast(qq,sex~variable,value.var = "value")

删除变量
rm()删除变量
ls()查看全局变量有哪些
rm(list=ls())删除全部的全局变量

R1-5天的更多相关文章

  1. PP66 EEPPPPMM SSyysstteemm AAddmmiinniissttrraattiioonn GGuuiiddee 16 R1

    ※★◆●PP66 EEPPPPMM SSyysstteemm AAddmmiinniissttrraattiioonn GGuuiiddee 16 R1AApprriill 22001166Conte ...

  2. P6 EPPM Installation and Configuration Guide 16 R1 April 2016

    P6 EPPM Installation and Configuration Guide 16 R1         April 2016 Contents About Installing and ...

  3. P6 EPPM 16 R1 文档和帮助系统

    P6 EPPM 16 R1 文档和帮助系统 https://docs.oracle.com/cd/E74894_01/ http://docs.oracle.com/cd/E68202_01/clie ...

  4. P6 Professional Installation and Configuration Guide (Microsoft SQL Server Database) 16 R1

    P6 Professional Installation and Configuration Guide (Microsoft SQL Server Database) 16 R1       May ...

  5. 位运算取第一个非0的位 r & (~(r-1))

    Single Number III Given an array of numbers nums, in which exactly two elements appear only once and ...

  6. Intersoft Mobile Studio 2013 R1 SP1 Crack

    Intersoft Mobile Studio 2013 R1 SP1 (iOS, Android & WinR) Leave a comment   tweet       inShare ...

  7. 洛谷3月月赛 R1 Step! ZERO to ONE

    洛谷3月月赛 R1 Step! ZERO to ONE 普及组难度 290.25/310滚粗 t1 10分的日语翻译题....太难了不会... t2 真·普及组.略 注意长为1的情况 #include ...

  8. SDOI 2019 R1游记

    $SDOI$ $2019$ $R1$游记 昨天才刚回来,今天就来写游记啦! Day -5: 做了一下去年省选的Day1,感觉很神仙. Day -4: 做了一下去年省选的Day2,感觉还是很神仙. Da ...

  9. SDOI2017 R1做题笔记

    SDOI2017 R1做题笔记 梦想还是要有的,万一哪天就做完了呢? 也就是说现在还没做完. 哈哈哈我竟然做完了-2019.3.29 20:30

  10. SDOI2014 R1做题笔记

    SDOI2014 R1做题笔记 经过很久很久的时间,shzr又做完了SDOI2014一轮的题目. 但是我不想写做题笔记(

随机推荐

  1. 设置Redis的LRU策略

    概念 LRU(Least Recently Used)最近最少使用算法是众多置换算法中的一种. maxmemory Redis中有一个maxmemory概念,主要是为了将使用的内存限定在一个固定的大小 ...

  2. Using the Security System 使用安全系统

    In this lesson, you will learn how to use a Security System in the application. When you use this sy ...

  3. iOS字符串处理_替换(去掉空格换行)、截取

    以下代码主要实现了:1.截取"@@"前的字符串:  2.去掉字符串中的"##":  3.去掉字符串中的空格和换行. 希望相互学习相互指正. -----ViewC ...

  4. 入职小白随笔之Android四大组件——内容提供器详解(Content Provider)

    Content Provider 内容提供器简介 内容提供器(Content Provider)主要用于在不同的应用程序之间 实现数据共享的功能,它提供了一套完整的机制,允许一个程序访问另一个程序中的 ...

  5. 今日资源帖-PPT逆袭秘籍72集+2000套模板,太经典了

    好资源不私藏,分享是一种态度 今日给大家分享的是PPT教程和2000套模板 如何让PPT成为你职场的利器 如何让你的PPT更具表现力 2000套模板随便选 PPT视频教程 链接 https://pan ...

  6. 关于eclipse中启动tomcat提示启动超时问题

    tomcat启动超时问题百分之九十时因为项目中mapper.xml(持久层接口的映射文件编写错误) 一般来讲文件中出错点是[忘写参数类型parameterType]   [多逗号少逗号]  [标签残缺 ...

  7. salt-api 获取服务器信息,minion批量执行cmd命令

    import requests import json try: import cookielib except: import http.cookiejar as cookielib # 使用url ...

  8. 阿里钉钉技术分享:企业级IM王者——钉钉在后端架构上的过人之处

    本文引用了唐小智发表于InfoQ公众号上的“钉钉企业级IM存储架构创新之道”一文的部分内容,收录时有改动,感谢原作者的无私分享. 1.引言 业界的 IM 产品在功能上同质化较高,而企业级的 IM 产品 ...

  9. Cisco学习记录(二):路由及网络设备配置

    本篇我们利用cisco packet tracer搭建一个简单的网络.我们在左下方的设备中尝试选择创建两个4321路由器和一个3560-24PS Multilayer交换机,然后在左下方的电缆线中选择 ...

  10. IT兄弟连 HTML5教程 CSS3揭秘 CSS3属性5

    9  透明属性 元素透明也是我们常用的样式,在CSS2中使用滤镜属性opacity实现透明效果.现在有了CSS3的rgba属性,就不用这么麻烦了,当然这也得要浏览器支持才行.通常我们定义颜色都是用十六 ...