Datensatz in R erweitern?
Datensatz in R erweitern?
Hallo!
Ich habe eine Frage zum Daten-Einlesen in R:
Ich habe einen Datensatz aus Excel in R eingelesen und mit diesem schon eine ganze Weile gearbeitet.
Nun möchte ich gerne diesen Datensatz erweitern. Kann ich einfach ein Excel-Dokument mit den neuen Daten zusätzlich einlesen?
Ich habe Angst, dass mein alter Datensatz dann weg ist...
Liebe Grüße!
Ich habe eine Frage zum Daten-Einlesen in R:
Ich habe einen Datensatz aus Excel in R eingelesen und mit diesem schon eine ganze Weile gearbeitet.
Nun möchte ich gerne diesen Datensatz erweitern. Kann ich einfach ein Excel-Dokument mit den neuen Daten zusätzlich einlesen?
Ich habe Angst, dass mein alter Datensatz dann weg ist...
Liebe Grüße!
Re: Datensatz in R erweitern?
Hallo Anna,
willkommen im Forum.
Ja, lies schon mal den zweiten Datensatz ein (=erzeuge einen neuen (also zweiten) Dataframe) und liefere uns die Ergebnisse von
Gruß, Jörg
willkommen im Forum.
Ja, lies schon mal den zweiten Datensatz ein (=erzeuge einen neuen (also zweiten) Dataframe) und liefere uns die Ergebnisse von
Code: Alles auswählen
str(Dataframe1)
str(Dataframe2)
Re: Datensatz in R erweitern?
Hallo Jörg!
Vielen Dank für deine Antwort! Das Einlesen hat geklappt!
Mein Problem: bei str(kark_data_neu) bei Variable mgkuh_7d und mgkuh_11d ist ein "#DIV/0!" angegeben. Kannst du mir sagen, was das bedeutet?
Da ist vermutlich irgendwas in meiner eingelesenen Excel Datei falsch oder?
EDIT: alle Variablen im neuen Datensatz sollen numerisch werden, wie im alten Datensatz auch.
DANKE!
Vielen Dank für deine Antwort! Das Einlesen hat geklappt!
Code: Alles auswählen
> str(kark_data)
'data.frame': 81370 obs. of 30 variables:
$ stnr : Factor w/ 315 levels "4347","4355",..: 1 1 1 1 1 1 1 1 1 1 ...
$ datum : Factor w/ 2100 levels "01.01.2011","01.01.2012",..: 1 70 139 208 277 346 415 484 553 622 ...
$ lnr : num 1 1 1 1 1 1 1 1 1 1 ...
$ ltg : num 89 90 91 92 93 94 95 96 97 98 ...
$ kaldat: Factor w/ 273 levels "01.01.2015","01.03.2011",..: 29 29 29 29 29 29 29 29 29 29 ...
$ mty : num NA NA NA NA NA NA NA NA NA NA ...
$ koe : num NA NA NA NA NA NA NA NA NA NA ...
$ fun : num NA NA NA NA NA NA NA NA NA NA ...
$ eut : num NA NA NA NA NA NA NA NA NA NA ...
$ ges : num NA NA NA NA NA NA NA NA NA NA ...
$ groe : num NA NA NA NA NA NA NA NA NA NA ...
$ mch : num NA NA NA NA NA NA NA NA NA NA ...
$ kti : num NA NA NA NA NA NA NA NA NA NA ...
$ stae : num NA NA NA NA NA NA NA NA NA NA ...
$ bne : num NA NA NA NA NA NA NA NA NA NA ...
$ bbr : num NA NA NA NA NA NA NA NA NA NA ...
$ hwi : num NA NA NA NA NA NA NA NA NA NA ...
$ kwi : num NA NA NA NA NA NA NA NA NA NA ...
$ spr : num NA NA NA NA NA NA NA NA NA NA ...
$ hst : num NA NA NA NA NA NA NA NA NA NA ...
$ heu : num NA NA NA NA NA NA NA NA NA NA ...
$ zba : num NA NA NA NA NA NA NA NA NA NA ...
$ spv : num NA NA NA NA NA NA NA NA NA NA ...
$ sph : num NA NA NA NA NA NA NA NA NA NA ...
$ veu : num NA NA NA NA NA NA NA NA NA NA ...
$ eti : num NA NA NA NA NA NA NA NA NA NA ...
$ slae : num NA NA NA NA NA NA NA NA NA NA ...
$ mkg : num 34.8 36.4 35.8 35 35.2 ...
$ gew : num 509 495 495 NA NA ...
$ fts : num NA NA NA NA NA NA NA NA NA NA ...
> str(kark_data_neu)
'data.frame': 1048575 obs. of 8 variables:
$ mgkuh_7d : Factor w/ 285 levels "","#DIV/0!","474",..: 1 1 1 1 1 1 1 1 1 1 ...
$ rec_7d : int NA NA NA NA NA NA NA NA NA NA ...
$ mgkuh_11d: Factor w/ 287 levels "","#DIV/0!","476,2",..: 1 1 1 1 1 1 1 1 1 1 ...
$ rec_11d : int NA NA NA NA NA NA NA NA NA NA ...
$ mgkuh_15d: Factor w/ 295 levels "","475,9","476",..: 1 1 1 1 1 1 1 1 1 1 ...
$ rec_15d : int NA NA NA NA NA NA NA NA NA NA ...
$ mgkuh_19d: Factor w/ 297 levels "","475,9","478,5",..: 1 1 1 1 1 1 1 1 1 1 ...
$ rec_19d : int NA NA NA NA NA NA NA NA NA NA ...
Da ist vermutlich irgendwas in meiner eingelesenen Excel Datei falsch oder?
EDIT: alle Variablen im neuen Datensatz sollen numerisch werden, wie im alten Datensatz auch.
DANKE!
Re: Datensatz in R erweitern?
Hallo Anna,
1. Beim Einlesen stringsAsFactors=FALSE damit die Datumswerte nicht als Faktoren abgelegt werden.
2. dec="," Denn bei Dir sind die Dezimalstellen durch ein Komma (und nicht durch einen Punkt) vom ganzzahligen Teil getrennt.
Du könntest, wenn das Problem sich nicht in Excel beheben lässt, versuchen, die Zeichenkette "#DIV/0!" in den Parameter na.strings= zu setzen.
Auf welche Weise wird denn eingelesen
a) direkt von einer Excel-Datei oder
b) (nach Export von Excel in eine Textdatei) aus einer Textdatei?
Ich möchte nochmal auf Deine ursprüngliche Frage zurückkommen.
Suchst Du nach merge()
Bitte beschreibe genau, was Du tun möchtest (möglichst mit einem (reduzierten) Beispiel)
Gruß, Jörg
da bin ich der Meinung, dass es noch Möglichkeiten zur Verbesserung gibt.anna_stat hat geschrieben:Vielen Dank für deine Antwort! Das Einlesen hat geklappt!
1. Beim Einlesen stringsAsFactors=FALSE damit die Datumswerte nicht als Faktoren abgelegt werden.
2. dec="," Denn bei Dir sind die Dezimalstellen durch ein Komma (und nicht durch einen Punkt) vom ganzzahligen Teil getrennt.
Das "#DIV/0!" muss eigentlich so schon in der Excel-Tabelle stehen; da ist eine Formel mit einer Division und die Zelle, die den Divisor liefern soll, hat den Wert 0.Mein Problem: bei str(kark_data_neu) bei Variable mgkuh_7d und mgkuh_11d ist ein "#DIV/0!" angegeben. Kannst du mir sagen, was das bedeutet?Code: Alles auswählen
> str(kark_data) 'data.frame': 81370 obs. of 30 variables: $ stnr : Factor w/ 315 levels "4347","4355",..: 1 1 1 1 1 1 1 1 1 1 ... $ datum : Factor w/ 2100 levels "01.01.2011","01.01.2012",..: 1 70 139 208 277 346 415 484 553 622 ... $ lnr : num 1 1 1 1 1 1 1 1 1 1 ... $ ltg : num 89 90 91 92 93 94 95 96 97 98 ... $ kaldat: Factor w/ 273 levels "01.01.2015","01.03.2011",..: 29 29 29 29 29 29 29 29 29 29 ... $ mty : num NA NA NA NA NA NA NA NA NA NA ... $ koe : num NA NA NA NA NA NA NA NA NA NA ... $ fun : num NA NA NA NA NA NA NA NA NA NA ... $ eut : num NA NA NA NA NA NA NA NA NA NA ... $ ges : num NA NA NA NA NA NA NA NA NA NA ... $ groe : num NA NA NA NA NA NA NA NA NA NA ... $ mch : num NA NA NA NA NA NA NA NA NA NA ... $ kti : num NA NA NA NA NA NA NA NA NA NA ... $ stae : num NA NA NA NA NA NA NA NA NA NA ... $ bne : num NA NA NA NA NA NA NA NA NA NA ... $ bbr : num NA NA NA NA NA NA NA NA NA NA ... $ hwi : num NA NA NA NA NA NA NA NA NA NA ... $ kwi : num NA NA NA NA NA NA NA NA NA NA ... $ spr : num NA NA NA NA NA NA NA NA NA NA ... $ hst : num NA NA NA NA NA NA NA NA NA NA ... $ heu : num NA NA NA NA NA NA NA NA NA NA ... $ zba : num NA NA NA NA NA NA NA NA NA NA ... $ spv : num NA NA NA NA NA NA NA NA NA NA ... $ sph : num NA NA NA NA NA NA NA NA NA NA ... $ veu : num NA NA NA NA NA NA NA NA NA NA ... $ eti : num NA NA NA NA NA NA NA NA NA NA ... $ slae : num NA NA NA NA NA NA NA NA NA NA ... $ mkg : num 34.8 36.4 35.8 35 35.2 ... $ gew : num 509 495 495 NA NA ... $ fts : num NA NA NA NA NA NA NA NA NA NA ... > str(kark_data_neu) 'data.frame': 1048575 obs. of 8 variables: $ mgkuh_7d : Factor w/ 285 levels "","#DIV/0!","474",..: 1 1 1 1 1 1 1 1 1 1 ... $ rec_7d : int NA NA NA NA NA NA NA NA NA NA ... $ mgkuh_11d: Factor w/ 287 levels "","#DIV/0!","476,2",..: 1 1 1 1 1 1 1 1 1 1 ... $ rec_11d : int NA NA NA NA NA NA NA NA NA NA ... $ mgkuh_15d: Factor w/ 295 levels "","475,9","476",..: 1 1 1 1 1 1 1 1 1 1 ... $ rec_15d : int NA NA NA NA NA NA NA NA NA NA ... $ mgkuh_19d: Factor w/ 297 levels "","475,9","478,5",..: 1 1 1 1 1 1 1 1 1 1 ... $ rec_19d : int NA NA NA NA NA NA NA NA NA NA ...
Da ist vermutlich irgendwas in meiner eingelesenen Excel Datei falsch oder?
Du könntest, wenn das Problem sich nicht in Excel beheben lässt, versuchen, die Zeichenkette "#DIV/0!" in den Parameter na.strings= zu setzen.
Auf welche Weise wird denn eingelesen
a) direkt von einer Excel-Datei oder
b) (nach Export von Excel in eine Textdatei) aus einer Textdatei?
dec="," Denn bei Dir sind die Dezimalstellen durch ein Komma (und nicht durch einen Punkt) vom ganzzahligen Teil getrennt.EDIT: alle Variablen im neuen Datensatz sollen numerisch werden, wie im alten Datensatz auch.
Ich möchte nochmal auf Deine ursprüngliche Frage zurückkommen.
Wie soll denn diese Erweiterung aussehen. Dein zweiter Dataframe stimmt weder in der Anzahl der Variablen mit dem ersten überein (somit ist ausgeschlossen, dass Du Zeilen des zweiten Dataframes an den ersten dranhängen möchtest) noch stimmt die Anzahl der Zeilen der beiden Dataframes überein (somit ist aus geschlossen, dass Du die Spalten des ersten Dataframes mit den Spalten des zweiten Dataframes durch einfaches nebeneinanderstellen erweitern möchtest).Ich habe einen Datensatz aus Excel in R eingelesen und mit diesem schon eine ganze Weile gearbeitet.
Nun möchte ich gerne diesen Datensatz erweitern.
Suchst Du nach merge()
Bitte beschreibe genau, was Du tun möchtest (möglichst mit einem (reduzierten) Beispiel)
Gruß, Jörg
Re: Datensatz in R erweitern?
Hey Jörg!
Vielen Dank für deine Hilfe!
Ich habe die Daten als .csv Datei eingelesen. Mein Ziel ist es den "alten" Datensatz (kark_data) um Variablen aus dem "neuen" Datensatz (kark_data_neu) zu erweitern.
Das Problem ist jetzt tatsächlich, dass die beiden Datensätze eine unterschiedliche Länge haben, ABER in beiden den Excel-Dateien steht in Zeile 81370 der letzte Wert. Nur warum hat der neue Datensatz (kark_data_neu) dann so viel mehr Zeilen? Kann man irgendwie angeben, dass nur bis zur Zeile 81370 eingelesen werden soll?
Viele Grüße!!
Vielen Dank für deine Hilfe!
Ich habe die Daten als .csv Datei eingelesen. Mein Ziel ist es den "alten" Datensatz (kark_data) um Variablen aus dem "neuen" Datensatz (kark_data_neu) zu erweitern.
Das Problem ist jetzt tatsächlich, dass die beiden Datensätze eine unterschiedliche Länge haben, ABER in beiden den Excel-Dateien steht in Zeile 81370 der letzte Wert. Nur warum hat der neue Datensatz (kark_data_neu) dann so viel mehr Zeilen? Kann man irgendwie angeben, dass nur bis zur Zeile 81370 eingelesen werden soll?
Viele Grüße!!
Re: Datensatz in R erweitern?
Hallo Jörg!
Nach langem Probieren habe ich es geschafft, die Datensätze haben jetzt die gleiche Länge und ich kann sie zusammen bauen!
Vielen Dank für deine tolle Hilfe!!
Nach langem Probieren habe ich es geschafft, die Datensätze haben jetzt die gleiche Länge und ich kann sie zusammen bauen!
Vielen Dank für deine tolle Hilfe!!
Re: Datensatz in R erweitern?
Hallo Anna,
Bitte lies den Hilfetext der Funktion read.table()
Gruß, Jörg
ja, dafür gibt es den Parameter nrows=anna_stat hat geschrieben:Das Problem ist jetzt tatsächlich, dass die beiden Datensätze eine unterschiedliche Länge haben, ABER in beiden den Excel-Dateien steht in Zeile 81370 der letzte Wert. Nur warum hat der neue Datensatz (kark_data_neu) dann so viel mehr Zeilen? Kann man irgendwie angeben, dass nur bis zur Zeile 81370 eingelesen werden soll?
Bitte lies den Hilfetext der Funktion read.table()
Code: Alles auswählen
?read.table