PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : R ==> Probleme beim Input



Dude193
28-09-2006, 16:10
Hallo,
ich bin neu hier im Forum und hoffe das mir hier vl geholfen werden kann..
Habe folgendes Problem:

Ich versuche eine SQL-Query aus einer txt.datei einzulesen.
Dieses mache ich über den Befehl:

importSQL <- function (file) {
sqlQuery <- readLines(file)
sqlQuery <- paste(unlist(sqlQuery), collapse = " ")
return(sqlQuery)
}

Das klappt soweit auch ganz gut, außer dass er bei jedem Zeilenwechsel im txt.file ein \t in den eingelesenen string einfügt.

Weiß jemand, wie ich diese ganzen \t wieder aus dem string entfernen kann???

falke2203
28-09-2006, 17:34
Ich hab zwar immer noch keine Ahnung von R, aber für mich sieht das so aus als würde die Eingabedatei Tabulatoren enthalten (dieses \t ist in den meisten Sprachen (die ich kenne) ein escape character für nen Tabulator).
Falls da sonst nichts gegenspricht, würde ich einfach alle Tabulatoren aus der Eingabedatei entfernen...

sofa-surfer
28-09-2006, 23:31
Hallo,

ich denke auch, dass da noch irgendwas in der Datei "drin" sein muss. Denn wenn ich mir eine einfache txt-Datei aus zwei Zeilen mit ein paar Zahlen erstelle, dann gibt es da keine Probleme beim Einlesen.

Matthias

Dude193
29-09-2006, 07:52
Guten Morgen,

danke erstemal für eure Hilfe, ich glaube ihr habt beide recht!
Schade, dass die SQL-Query ziemlich lang ist, aber dann will ich mich mal an die arbeit machen, diese umzubauen!!!

Aber vl. weiß ja auch noch jemand anderes, wie ich diese /t nachträglich wieder entfernen kann!!! Über Tips bin ich auch weiterhin dankbar.

Gruss und schönen Tag,
DUDE.

sofa-surfer
29-09-2006, 10:48
Hallo

Du kannst natürlich auch versuchen, dass du das von R-Seite her machst. Genau wie weiß ich auch nicht, da ich noch nicht mit Strings gearbeitet habe. Aber du kannst ja über alle Listenelemente (die wohl den einzelenen eingelesenen Zeilen entsprechen) z.B. mit lapply iterieren. Dann müsstest du dir eben noch ne kleine Funktion schreiben, die immer die letzten beiden Zeichen (nämlich das /t) abschneidet.

abschneiden<-function(x){....}
new.list<-lapply(old.list, abschneiden)


Matthias