2012-10-30 1 views
3

Je suis vraiment un débutant dans R. Je suis désolé pour ma question naïve.rollapply fenêtre coulissante

Une partie de mes données est la suivante:

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 

Je veux tracer Obs_FCT (qui est l'axe Y) VS POS (l'axe X), mais il ne complote pas du tout. Je veux également appliquer une fenêtre glissante sur la colonne POS. La fenêtre est la suivante (à savoir que la taille de la fenêtre est de 1000 et coulissant par 200):

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

Si les nombres dans la colonne POS sont situés dans chaque fenêtre, calculent la valeur moyenne de Obs_FCT. (L'axe X utilise le point milieu de la fenêtre).

Quelqu'un pourrait me dire comment utiliser le code R pour y parvenir? En général, je sais que peut-être je peux obtenir ce que je veux à travers rollapply. Mais il semble qu'une fonction est nécessaire.

+4

Si vous entrez '[r] rollapply' dans la fenêtre de recherche ci-dessus, vous obtenez un certain nombre de discussions précédentes. S'il vous plaît voir s'ils répondent à votre question. –

+0

Vous pouvez aussi jeter un coup d'œil sur 'runmean()' du paquet 'caTools' aussi – Ali

Répondre

1

J'ai copypassé vos données dans un fichier texte et les ai lues dans R avec read.table. En utilisant la commande plot donne les résultats que vous voulez 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) 

Cela fait un terrain avec POS dans l'axe X et Obs_FCT dans l'axe Y. Runmean du paquet caTools, vous permet de faire une médiane en cours d'exécution.

Vous pouvez spécifier le nombre de points dans la fenêtre, mais vous ne pouvez pas spécifier comment vous souhaitez que la fenêtre glisse.

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

Vous pouvez ensuite terrain:

plot(d$POS, md)