24-缺失数据
缺失数据产生的原因:
1.机器断电、设备故障导致某个测量值发生了丢失
2.测量根本没有发生,例如在做调查问卷时,某些问题没有回答,或者某些问题是无效的回答等。
②基本概念与表示
R中NA代表缺失值,即not available(不可用)
NA不一定是0 , 0与NA是完全不同的概念
1+NA还是NA ,NA==0输出NA(无法判断是TRUE或者FALSE)
a<-c(NA,1:49)
sum(a,na.rm=TRUE) 表示跳过此缺失值,将此缺失值移除后统计其他数据
测试数据集中是否有NA,若有则返回TRUE
colSums(sleep) rowSums(sleep) VIM包中
此可测试行与列中缺失值产生的原因
c <-c(NA,1:20,NA,NA)
d <-na.omit(c) 此操作可祛除缺失值,当应用于数据库时,则包含缺失值的每一行都删除
注:处理缺失值未必只必须删除,还有许多其他方法,R中有很多方法
其他缺失数据
缺失数据NaN,代表不可能的值,例如0/0
Inf表示无穷,分为正无穷Inf与负无穷Inf,代表无穷大与无穷小
NA是存在的值,只是不知道是多少;NaN是不存在的值;Inf是存在的值,代表无穷大或无穷小
is.nan(0/0) TRUE
is.infinite(1/0) TRUE
其他章节内容请看我的个人微信公众号:全哥的学习生涯
25-字符串
字符串出现的地方,必须加引号
nchar() 返回每一个元素字符串的个数
month.name 也是一个字符串向量
length() 返回向量中元素的个数
nchar(c(12,2,345)) 输出结果为2 1 3 此会将数值型向量转换为字符串处理
paste(“Everybody”,”loves”,”her”) 输出结果为Everybody loves her
默认以空格分隔,可设置分隔符,在函数中加入语句sep=”-”,即输出结果为Everybody-loves-her
若names<- c(“Moe”,”Lily”)
paste(names,”loves stats”) 则结果是分别处理,即
Moe loves stats 与Lily loves stats
substr(原始字符串,起止点,结束点) 提取字符串操作、
t=substr(x=month.name,start=1,stop=3)输出结果为”Jan””Feb””Mar”
toupper(t) 可将字符串转换为大写
tolower(t) 可将字符串转换为小写
利用正则表达式也可以进行全局替换,perl语言
path <- “存放路径”
strsplit(path,”/”) 分隔字符串,分隔后第一个为空字符串
此返回的是列表,并非向量
生成一副扑克牌
face<- 1:13
suit<- c(“spades”,”clubs”,”hearts”,”diamonds”)
outer(suit,face,FUN=paste) 可设置sep=”-”,加连字符
其他章节内容请看我的个人微信公众号:全哥的学习生涯
26-日期和时间
时间序列分析:1.对时间序列的描述 2.利用前面的结果进行预测
时间序列包:sunspots,presidents,airmiles
class(presidents) 输出ts,代表时间序列
Sys.Date() 可查看当前系统时间
a <- “2020-07-19”
as.Date(a,format=”%Y-%m-%d”)格式化日期,四位数年,两位是月/日
?strftime可查看转换日期格式
seq(as.Date(“2020-07-19”),as.Date(“2020-12-01”),by=5)
生成时间点
sales <-round(runif(48,min=50,max=100))生成随机数
ts(sales,start=c(2010,5),end=c(2014,4),frequency=1)
1为年,12为月,4为季度,没有以天为单位的
其他章节内容请看我的个人微信公众号:全哥的学习生涯
27-常见错误
R中定义各种变量都应指明数据类型,记得加c( ),向量c,矩阵matrix,数组array,数据框data.frame
R中使用函数时必须加括号
字符串要加引号,安装R包时也要加引号
逗号分隔集合问题,取行列时加逗号
“==”比较大小,“=”赋值
路径中“/”,当设置路径时应“\\”或“/”
载入R包
运算符优先级:不清楚时用()
R中严格区分大小写
解决R中常见错误:1.Google 2.Rblogger 3.quickR 4.stackoverflow等
其他章节内容请看我的个人微信公众号:全哥的学习生涯
28-获取数据
R获取数据三种途径:
1.利用键盘来输入数据
2.通过读取存储在外部文件的数据
3.通过访问数据库系统获取数据
可用edit(data)手动输入文本,fix(data)可直接修改,修改后的值无需再赋给data
利用perl与python进行统计,然后将结果导入R中分析,R一般不直接分析原始数据
通过ODBC访问数据库,RODBC包访问连接数据库
第29、30、31、32、33节请看公众号内推文“R语言读取Excel、R与本机文件”
其他章节内容请看我的个人微信公众号:全哥的学习生涯