3

我是 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 轴)VS POS(X 轴),但它根本没有绘制。我还想在POS列上应用一个滑动窗口。窗口如下(即窗口大小为1000,滑动200):

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

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

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

4

1 回答 1

1

我将您的数据复制粘贴到一个文本文件中,并使用 read.table 将其读入 R。使用 plot 命令可以得到你想要的结果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)
于 2013-03-19T12:29:40.307 回答