2016-06-01 14 views
3

Ich habe eine Tabelle mit ersten beiden Spalten, die wie folgt aussieht:entfernen aus einer Spalte .x

Human_ortholog Representative_transcript 
FAM126A   ENST00000409923.1 
CYP3A5   ENST00000339843.2 
LCMT1   ENST00000399069.3 
SPATA31A6  ENST00000332857.6 

Wie kann ich die .n entfernen, wobei n die Zahl nach . ist, gsub mit?

Antwort

5

Hier ist, wie:

df$col = sub('\\.\\d$', '', df$col) 

Diese eine einzelne Ziffer entfernt, durch einen Punkt voraus, am Ende des Strings. Wenn die Zahlen aus mehreren Ziffern bestehen könnte, eine geeignete quantifier verwenden:

df$col = sub('\\.\\d+$', '', df$col) 

Diese Antwort sub verwendet, da Sie nur einen einzigen Ersatz pro String ausführen möchten. gsub ist (nur) sinnvoll, wenn mehrere Ersetzungen pro Zeichenfolge durchgeführt werden, wie in diesem Beispiel:

sub('[aeiou]', '', 'This is a test') 
# [1] "Ths is a test" 
gsub('[aeiou]', '', 'This is a test') 
# [1] "Ths s tst" 
Verwandte Themen