2016-12-02 8 views
-2

Angenommen, diese data.frame heißt GC, also möchte ich Spalten "Last", "Change" eliminieren und auf eine neue Matrix/Vektor setzen. Auch ich möchte den 6. Wert ab dem Ende whch Datum 1975-02-18 wählen.Datenrahmen in R

require(Quandl) 
GC = Quandl("CME/GCG1975",order = "asc", type="raw") 
class(GC) 

> class(GC) 
[1] "data.frame" 

> GC 
     Date Open High Low Last Change Settle Volume Prev. Day Open Interest 
1 1974-12-31 191.0 191.5 182.7 NA  NA 183.9 512      237 
2 1975-01-02 184.0 184.8 173.9 NA  NA 175.1 294      209 
3 1975-01-03 173.0 175.5 170.5 NA  NA 174.7 174      216 
4 1975-01-06 172.0 174.5 167.5 NA  NA 174.4 197      225 
5 1975-01-07 171.0 174.0 168.5 NA  NA 173.4  98      240 
6 1975-01-08 176.0 180.0 176.0 NA  NA 177.4  69      224 
7 1975-01-09 179.0 179.1 177.0 NA  NA 178.3  25      246 
8 1975-01-10 177.0 181.3 176.5 NA  NA 181.3  24      260 
9 1975-01-13 181.0 181.0 178.6 NA  NA 178.6  31      258 
10 1975-01-14 177.0 178.6 176.5 NA  NA 178.6  7      255 
11 1975-01-15 178.8 179.4 177.3 NA  NA 177.3  29      275 
12 1975-01-16 177.0 177.0 174.6 NA  NA 175.1  40      266 
13 1975-01-17 174.7 174.8 172.1 NA  NA 172.1  18      296 
14 1975-01-20 173.6 176.2 173.6 NA  NA 176.2  18      268 
15 1975-01-21 173.7 173.7 173.7 NA  NA 173.7  0      277 
16 1975-01-22 175.9 175.9 174.3 NA  NA 174.3  38      285 
17 1975-01-23 177.0 177.0 176.4 NA  NA 176.4  40      290 
18 1975-01-24 179.0 180.0 177.8 NA  NA 179.5  55      325 
19 1975-01-27 180.0 180.0 176.8 NA  NA 176.8  30      320 
20 1975-01-28 177.3 177.3 175.4 NA  NA 176.0  93      340 
21 1975-01-29 177.4 179.1 177.4 NA  NA 179.1  12      336 
22 1975-01-30 177.0 177.0 175.8 NA  NA 175.8  8      336 
23 1975-01-31 176.0 176.0 174.7 NA  NA 175.5  33      338 
24 1975-02-03 176.2 176.9 175.8 NA  NA 175.8  25      336 
25 1975-02-04 173.0 174.8 173.0 NA  NA 174.8  10      331 
26 1975-02-05 175.3 175.3 174.2 NA  NA 174.2  5      331 
27 1975-02-06 172.5 173.8 172.1 NA  NA 173.8  20      157 
28 1975-02-07 174.9 175.1 174.9 NA  NA 175.1  2      154 
29 1975-02-10 174.0 174.0 173.7 NA  NA 173.7  3      80 
30 1975-02-11 174.8 174.8 174.8 NA  NA 174.8  0      77 
31 1975-02-13 183.5 183.5 183.5 NA  NA 183.5  52      103 
32 1975-02-14 184.4 184.4 183.1 NA  NA 183.1  12      79 
33 1975-02-18 183.6 183.6 183.6 NA  NA 183.6  0      59 
34 1975-02-19 185.2 185.5 184.0 NA  NA 184.0  11      58 
35 1975-02-20 184.5 186.1 184.5 NA  NA 186.1  18      72 
36 1975-02-21 186.1 186.1 184.5 NA  NA 184.5  5      72 
37 1975-02-24 185.5 185.5 185.5 NA  NA 185.5  0      69 
38 1975-02-25 186.2 186.2 183.1 NA  NA 183.1  5      19 
+0

Sie haben bereits eine lange [offene Frage] (http://stackoverflow.com/questions/40936334/r-continuous-futures-working-backward) und die aktuelle Frage ist sehr grundlegende 'dat.frame' Operation (Beispiel Antwort [Spalte nach Name löschen] (http://stackoverflow.com/questions/4605206/drop-data-frame-columns-by-name)). Ohne Vertrautheit mit data.frame, Indexierung, Zeitreihenpaketen (xts, zoo) stehen Sie vor einer schwierigen Aufgabe, einige grundlegende Tutorials sind [data.frame] (https://www.r-bloggers.com/working-with-the -data-frame-in-r /) und [xts] (http://blog.revolutionanalytics.com/2014/01/quantitative-finance-applications-in-r.html) – OdeToMyFiddle

+0

danke Osssan, für Ihre Empfehlung –

Antwort

1

Question1:

Sie Spalten aus einem Datenrahmen auswählen können, indem Sie:

select <- GC[,c('Last', 'Change')] 

Wenn Sie es auf eine Matrix konvertieren möchten Sie tun können:

removed_columns <- as.matrix(GC[,c('Last','Change')]) 

Sie können diese Spalten aus dem Datenrahmen entfernen, indem Sie sie auf NULL setzen:

GC$Last = GC$Change = NULL 

Frage 2:

Sie können ganz einfach auswählen Zeilen aus einer Datenrahmen durch einen logischen Operator:

value = GC[GC$Date == '1975-02-18',] 

Hast du einen Kurs/tutorial in R? Diese Art von grundlegenden Datenmanipulationen werden in jedem einführenden R-Kurs behandelt.

Viel Glück!

+0

Danke PaulH, Frage 1 funktioniert für mich, und Frage 2 ist nicht genau das, was ich will. Ich möchte die 6. Reihe beginnend mit der letzten auswählen, und das "Datum" ändert sich je nach Vertrag. Nein, ich will und will nicht, ich finde und antworte, wenn ich es brauche, danke für deine Empfehlung. Dies ist ein Stück eines Projekts: [http://stackoverflow.com/questions/40936334/r-continuous-futures-working-backward] aber ich habe bewiesen, dass es besser ist, mehrere einfache Fragen zu stellen als eine komplexe. –

+0

Gelöste FRAGE 2: 'six_last_row = nrow (GC) - 5' und' GC [six_last_row,] ' –