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) 表示跳过此缺失值,将此缺失值移除后统计其他数据
③ is.na(a) 测试数据集中是否有NA,若有则返回TRUE
④ colSums(sleep) rowSums(sleep) VIM包中
此可测试行与列中缺失值产生的原因
c <- c(NA,1:20,NA,NA)
d <- na.omit(c) 此操作可祛除缺失值,当应用于数据库时,则包含缺失值的每一行都删除
注:处理缺失值未必只必须删除,还有许多其他方法,R中有很多方法
⑤ 其他缺失数据
1. 缺失数据NaN,代表不可能的值,例如0/0
2. Inf表示无穷,分为正无穷Inf与负无穷Inf,代表无穷大与无穷小
3. NA是存在的值,只是不知道是多少;NaN是不存在的值;Inf是存在的值,代表无穷大或无穷小
4. 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包访问连接数据库