2017-07-16 2 views
2

Ich versuche, eine große Anzahl von .txt Dateien mit R auf einem Windows-Rechner zu bearbeiten. Ich blieb stecken und versuchte alle Zeilen, die mit einem > Zeichen beginnen, in eine neue .txt Datei zu speichern. Ich habe versucht, wie eine Reihe von Lösungen in anderen Threads vorgeschlagen:Probleme beim Löschen oder Hinzufügen von Zeilen aus .txt mit grep oder sed

grep -v "^>" filename 

sed -i "/^</ d" filename 

Aber ich halte den Standardfehler bekommen:

unexpected string constant

ich im Allgemeinen R relativ neu bin und String-Manipulation in besonders. Irgendwelche Ideen, wo ich anfangen sollte zu suchen, brauche ich Fluchten für die > Zeichen, muss ich die .txt s formatieren, oder bin ich nur einige grundlegende Syntax vermasseln?

Antwort

1

Laufen Sie grep -v "^>" filename in Ihrer R-Sitzung oder in Ihrem Terminal? Klingt wie in deiner Sitzung, daher der Fehler. Die R-Funktion grep() funktioniert anders als der Unix-Befehl grep, und sed ist überhaupt nicht verfügbar.

Sie könnten versuchen, ein anderes Terminal zu öffnen (oder beenden Sie Ihre R-Sitzung) und versuchen Sie diese Befehle an einer BASH-Eingabeaufforderung.

Um Textmanipulation mit R zu tun, müssen Sie zunächst etwas wie Readlines verwenden(), um die Datei in ein R-Objekt zu erhalten, dann können Sie R ‚s Textfunktionen wie grep() verwenden, dann writelines() zu speichern die Änderungen, die Sie an der Datei vorgenommen haben.

Etwas wie:

z <- readLines("file.txt") 
y <- z[grep("^>", z, invert=TRUE)] 
writeLines(y, "file.txt") 

funktionieren sollte.

+1

Das könnte gut das Problem sein. Haben Sie irgendwelche Vorschläge, wie ich das in R machen könnte? Dies ist nur der erste Schritt eines längeren Prozesses, also möchte ich wirklich alle nicht automatisierten Schritte vermeiden. – Max

+0

Hilft meine Bearbeitungshilfe? – Dmitri

Verwandte Themen