R做数据处理

1、数据获取的SQL语句

#查看创建的表

SHOW CREATE TABLE dmk.dmk_sal_actual_sales_dtl;

#用原有的表创建一张新表

CREATE TABLE temp.dmk_sal_actual_sales_dtl_test as
SELECT * from dmk.dmk_sal_actual_sales_dtl T
WHERE t.period_wid>=20151201;

#创建一张新表(信息表,分隔符为,格式为txt)

CREATE table temp.dmk_sal_actual_sales_dtl_test1
(
name String COMMENT ‘xingming姓名’,
age BIGINT COMMENT ‘nianling年龄’
)
COMMENT 'xinxibiao信息表 ’
row format delimited fields terminated by ‘,’
STORED AS TEXTFILE;

#向新建的表插入数据

INSERT into temp.dmk_sal_actual_sales_dtl_test1
SELECT item_code,qty from temp.dmk_sal_actual_sales_dtl_test;

#以分组的方式查询数据

SELECT t.name,sum(t.age) FROM temp.dmk_sal_actual_sales_dtl_test1 t WHERE t.age<100
GROUP BY t.name;

#以条件和分组方式查询数据

SELECT substr(T.period_wid,1,6),sum(T.qty)
from dmk.dmk_sal_actual_sales_dtl T
WHERE T.qty<=100 and T.period_wid>=20151201
GROUP BY substr(T.period_wid,1,6)

2、异常值检测

使用函数boxplot.stats()实现单变量检测,该函数根据返回的统计数据生成箱线图。
boxplot.stats(x s a l e ) sale) sale)out #输出异常值
boxplot(xKaTeX parse error: Expected 'EOF', got '#' at position 7: sale) #̲绘制箱图 #输出异常值…sale) o u t b o x p l o t ( x out boxplot(x outboxplot(xsale) #绘制箱图
a=which(x$sale %in% out) #删除异常值
x=x[-a,]
利用图形——箱型图进行异常值检测。
利用图形——箱型图进行异常值检测。
#异常值识别

par(mfrow=c(1,2))#将绘图窗口划为1行两列,同时显示两图
dotchart(inputfile$sales)#绘制单变量散点图,多兰图

pc=boxplot(inputfile$sales,horizontal=T)#绘制水平箱形图
把缺失值数据集、非缺失值数据集分开。

#缺失值的处理

inputfile d a t e = a s . n u m e r i c ( i n p u t f i l e date=as.numeric(inputfile date=as.numeric(inputfiledate)#将日期转换成数值型变量
sub=which(is.na(inputfile$sales))#识别缺失值所在行数
inputfile1=inputfile[-sub,]#将数据集分成完整数据和缺失数据两部分
inputfile2=inputfile[sub,]

3、分解时间序列(季节性数据)
一个季节性时间序列中会包含三部分,趋势部分、季节性部分和无规则部分。分解时间序列就是要把时间序列分解成这三部分,然后进行估计。
对于可以使用相加模型进行描述的时间序列中的趋势部分和季节性部分,我们可以使用 R中的“decompose()” 函数来估计。这个函数可以估计出时间序列中趋势的、季节性的和不规则的部分,而此时间序列须是可以用相加模型描述的。
“decompose()” 这个函数返回的结果是一个列表对象, 里面包含了估计出的季节性部分, 趋势部分和不规则部分, 他们分别对应的列表对象元素名为“seasonal” 、 “trend” 、 和“random” 。
示例:纽约每月出生人口数量是在夏季有峰值、 冬季有低谷的时间序列。

births <- scan(“http://robjhyndman.com/tsdldata/data/nybirths.dat”) #Read 168 items
birthstimeseries <- ts(births, frequency=12, start=c(1946,1))
ts.plot(birthstimeseries)
abline(lm(birthstimeseries~time(birthstimeseries)),col=“red”) #增加线性拟合曲线
birthcomponents <- decompose(birthstimeseries)
plot(birthcomponents)
birthsadjusted<-birthstimeseries-birthcomponents$seasonal #去掉季节性因素
plot(birthsadjusted)

4、分解时间序列(非季节性数据)
一个非季节性时间序列包含一个趋势部分和一个不规则部分。 分解时间序列即为试图把时间序列拆分成这些成分,也就是说, 需要估计趋势的和不规则的这两个部分。
为了估计出一个非季节性时间序列的趋势部分, 使之能够用相加模型进行描述, 最常用的方法便是平滑法, 比如计算时间序列的简单移动平均。 这时,我们需要使用“TTR”程序包中的SMA()函数。
使用 SMA()函数时, 你需要通过参数“n” 指定来简单移动平均的跨度。 例如, 计算跨度为 5 的简单易懂平均, 我们在 SMA()函数中设定 n=5。
例如:42 位英国国王的去世年龄数据呈现出非季节性

king<-scan(“http://robjhyndman.com/tsdldata/misc/kings.dat”,skip=3) #Read 42 items
kingts<-ts(king)
install.packages(“TTR”) ##下载和引用TTR程序包
library(TTR)
kingstime<-SMA(kingts,n=8) #设置跨度为8的简单移动平均平滑数据
plot.ts(kingstime)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值