2017-01-18 1 views
2

Ich habe 2 Datensätze, die ich mit einer gemeinsamen Spalte mit R zusammenführen muss, aber sie müssen geändert werden, um das gleiche Format anzuzeigen, aber nicht finden, wie. Eine Spalte wie dieseR: Bearbeiten einer Spalte, so dass sie zusammengeführt werden kann

BT0-3 
BT0-4 
BT0-5 

Während die anderen sieht wie folgt aussieht: einfach

BT0_3.5 
BTO_4.5 
BT0_5.5 

Ich muss sie so machen übereinstimmen ich sie zusammenführen können (Die Zahlenwerte sind Etiketten, so dass die zusätzliche 0,5 gerade aufgezeichnet anders)

Antwort

0

Beginnen alle Werte in beiden Spalten mit BT0? In der zweiten Spalte wird einer der Werte als BTO eingegeben. Ist das ein Tippfehler? Unter der Annahme, beide Spalten Werte mit BT0 beginnen, stellen Sie sicher, dass beide Spalten von Zeichen (anstatt Faktor) Modus, dann:

df$var = gsub("_([0-9])\\..$", "-\\1", df$var) 

wo df$var der Datenrahmen und Spalte, die Sie ändern möchten. Dies ersetzt den Unterstrich vor einer Ziffer mit einem Bindestrich und entfernt einen Punkt gefolgt von einem beliebigen Zeichen am Ende der Zeichenfolge.

2

Wenn Ihre Frage ist, wie zu ersetzen '-' zu '_', dann wäre es: var = sub (pattern = '-', Ersatz = '_', x = var)

Wenn Sie möchten '.5' löschen, dann: var = sub (pattern = '.5', ersatz = '', x = var) würde einfach den Job machen.

Der Unterschied zwischen der Funktion 'sub' und 'gsub' ist 'gsub' ersetzt alles mit dem Muster, während 'sub' nur die erste Übereinstimmung auf der linken Seite ersetzen. Ich würde empfehlen, sub zu verwenden, wenn Sie Ihre Daten nicht gut kennen, und versuchen Sie 'grep', um Verbesserung nach der Ersetzung zu finden.

Verwandte Themen