Aufteilen einer Datei-name in name,Erweiterung
Habe ich den Namen einer Datei wie dieser: name1.csv
und ich möchte zu extrahieren, zwei Teilzeichenfolgen dieser Zeichenfolge. Eine, die speichert die name1
in einer Variablen und anderen, in der Erweiterung csv
, ohne den Punkt in einer anderen variable.
Habe ich die Suche, wenn es eine Funktion gibt wie indexOf
von Java, die es erlaubt, das zu tun diese Art der manipulation, aber ich habe nicht gefunden, überhaupt nichts.
Hilfe?
- Versuchen
tools::file_ext("name1.csv")
. Siehe stackoverflow.com/questions/7779037/...
Du musst angemeldet sein, um einen Kommentar abzugeben.
Verwenden
strsplit
:Beachten Sie, dass Sie a) zu entkommen müssen Sie den Punkt (wie es ein Metazeichen für reguläre Ausdrücke) und b) mit der Tatsache auseinandersetzen, dass
strsplit()
gibt eine Liste von denen in der Regel nur das erste element von Interesse ist.Eine allgemeinere Lösung besteht aus regulären Ausdrücken, wo Sie können extrahieren Sie die Spiele.
Für den speziellen Fall der Dateinamen, die Sie auch haben:
und
da diese eine derartige gemeinsame Aufgaben (vgl
basename
im shell etc).tools
Paket ist der bessere Weg, mit dem Namen, da diebasename
kann auch Punkten.Verwenden
strsplit()
:http://stat.ethz.ch/R-manual/R-devel/library/base/html/strsplit.html
Beispiel:
Beachten Sie, dass zweite argument ist ein regulärer Ausdruck, das ist, warum Sie können nicht einfach übergeben, single dot (es wird interpretiert als "beliebiges Zeichen").
Regular expressions, Sie können dies tun, zum Beispiel