2009-03-18 6 views
7

Ich habe Daten, die so aussehen. In dem ich akkumulativen Wert von dat1 in Bezug auf auf x-Achse darstellen möchte. Zeichne es auch zusammen mit dat2.Kumulativer Plot mit gegebener X-Achse

#x-axis dat1    dat2 
-10  0.0140149  0.0140146 
-9  0.00890835  0.00891768 
-8  0.00672276  0.00672488 
-7  0.00876399  0.00879401 
-6  0.00806879  0.00808141 
-5  0.0088366  0.00885121 
-4  0.00856872  0.00857769 
-3  0.0195384  0.0196094 
-2  0.0160239  0.0161829 
-1  0.0254455  0.0257845 
0  0.0397413  0.0400913 
1  0.0743316  0.0755453 
2  0.0247501  0.0253324 
3  0.0214285  0.021778 
4  0.0241462  0.0244967 
5  0.0150943  0.015241 
6  0.0141398  0.0142373 
7  0.0101515  0.0102948 
8  0.0308843  0.031294 
9  0.0095504  0.00960626 
10  0.00729676  0.0073713 

Wie ist es üblich, es in R zu tun?

ich ECDF von Hmisc sah, scheint es nicht zu tun, was ich will. Insbesondere erlaubt es uns nicht, x-Achsen-Wert zu geben.

Antwort

7

Ich denke, die Funktion die Sie suchen, ist cumsum(), die eine kumulative Summe auf einem Vektor tun.

#put your data into 3 vectors 
x<-c(-10,-9,-8,-7,-6,-5,-4,-3,-2,-1,0,1,2,3,4,5,6,7,8,9,10) 
dat1<-c(0.0140149,0.00890835,0.00672276,0.00876399,0.00806879,0.0088366,0.00856872,0.0195384,0.0160239,0.0254455,0.0397413,0.0743316,0.0247501,0.0214285,0.0241462,0.0150943,0.0141398,0.0101515,0.0308843,0.0095504,0.00729676) 
dat2<-c(0.014015,0.008918,0.006725,0.008794,0.008081,0.008851,0.008578,0.019609,0.016183,0.025785,0.040091,0.075545,0.025332,0.021778,0.024497,0.015241,0.014237,0.010295,0.031294,0.009606,0.007371) 

#create a new vector called cdat1 to hold the cumulative sum 
cdat1<-cumsum(dat1) 
plot(x,cdat1) 
points(x,dat2,col="red") 

Ich benutze die oben genannten Funktionspunkte, um dat2 zum vorhandenen Plot hinzuzufügen. Führen Sie dieses in R aus und sehen Sie, ob es Ihnen gibt, was Sie brauchen.

3

Wenn Sie die Daten in einer Textdatei (z data.txt) Sie folgendes auch tun können:

A <- read.table("data.txt",header=TRUE) 
attach(A) 
plot(x.axis, cumsum(dat1)) 
points(x.axis, cumsum(dat2), col='red') 

Als JD Lange sagte, die cumsum Funktion ist das, was Sie suchen.

Verwandte Themen