我是R的新手,我为我天真的问题感到抱歉。
我的部分数据如下:
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轴)与POS
(X轴)之间的关系,但根本没有绘制。我还想在POS
列上应用一个滑动窗口。窗口如下(即窗口大小为1000,滑动200):
1--1000
200 ---1200
400 ---1400
600 ----1600
--------
如果POS
列中的数字位于每个窗口中,则计算Obs_FCT
的平均值。(X轴使用窗口的中点)。
有人能告诉我如何使用R代码来实现这一点吗?一般来说,我知道也许我可以通过rollapply
得到我想要的东西。但似乎需要一个函数。
发布于 2013-03-19 20:29:40
我将您的数据复制到一个文本文件中,并使用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)
这将生成一个在X轴上使用POS机,在Y轴上使用Obs_FCT的绘图。
来自caTools包的runmean,让你得到一个运行的中位数。可以指定窗口中的点数,但不能指定窗口的滑动方式。
> md <- runmean(x=d$Obs_FCT, k=1000)
然后,您可以绘制:
plot(d$POS, md)
https://stackoverflow.com/questions/13147890
复制相似问题