2012-10-30 136 views
3

我在R非常新手。我很抱歉我的天真问题。我的数据rollapply滑动窗口

部分如下:

POS   Obs_FCT 
4345  0.10049191 
4484  0.08930793 
4515 -0.00468725 
4547 -0.00749802 
4628  0.01143598 
5347  0.05673895 
6071  0.01143598 
6449 -0.00070778 
6498 -0.0109962 
7320  0.00543984 
7457 -0.00206247 
7761  0.08018589 
7875 -0.00601304 
7988 -0.00070778 
9459  0.01447144 
9483  0.08269899 
9495 -0.03353229 
9552 -0.00206247 
9602 -0.0269909 
9701 -0.00206247 
11809 -0.01952417 
12593 -0.02173826 
16787 0.08930793 
17049 -0.06738125 
17058 0.01325792 

我想绘制Obs_FCT(即Y轴)VS POS(X轴),但它不是绘制的。我也想在POS栏中应用滑动窗口。窗口如下(即,窗口大小为1000和200的滑动):

1--1000 
200 ---1200 
400 ---1400 
600 ----1600 
-------- 

如果POS列中的数字是位于每个窗口,计算的Obs_FCT平均值。 (X轴使用窗口的中点)。

有人可以告诉我如何使用R代码来实现这一目标吗?一般我知道,也许我可以通过rollapply得到我想要的。但它似乎需要一个功能。

+4

如果你在搜索窗口中输入'[R] rollapply'上面,你会得到一些以前讨论。请看看他们是否解决你的问题。 –

+0

你可能会看看package'caTools'的'runmean()' – Ali

回答

1

我将您的数据复制到一个文本文件中,并使用read.table将其读入到R中。使用绘图命令给你想要的结果plot

> d<-read.table("path/to/file.txt", header=TRUE, sep="") 
> head(d) 
    POS  Obs_FCT 
1 4345 0.10049191 
2 4484 0.08930793 
3 4515 -0.00468725 
4 4547 -0.00749802 
5 4628 0.01143598 
6 5347 0.05673895 
>plot(d) 

这使得在Y轴X轴和Obs_FCT POS机的阴谋。

从包caTools runmean,让你做一个运行中位数。您可以指定窗口中的点数,但不能指定窗口的滑动方式。

> md <- runmean(x=d$Obs_FCT, k=1000) 

然后,您可以阴谋:

plot(d$POS, md)