die letzten 3 Zeichen in einer Spalte extrahieren und ab

Wie rufe ich R-Funktionen auf, wie selektiere ich Daten, ich weiß nicht genau ....

Moderatoren: EDi, jogo

Antworten
blacklabel5
Beiträge: 15
Registriert: Fr Aug 10, 2018 11:05 am

die letzten 3 Zeichen in einer Spalte extrahieren und ab

Beitrag von blacklabel5 » Do Dez 06, 2018 5:59 pm

Hallo zusammen,

ich habe folgendes Problem: Ich habe einen dataframe mit 6 Spalten, 1000 Zeilen; in der letzten Spalte steht ein String, etwas so "Per Booking 5 EUR"
Der String ist so aufgebaut, dass die letzten 3 Buchstaben die Währung widerspiegeln.
Ich möchte diese 3 Buchstaben extrahieren und in eine neue Spalte (Spalte7) jeweils in die entsprechende Spalte einfügen.
library(stringr)
#irgendwie befüllen
Data[,8] <- 1
names(Data)[7] <- "Currency"
Data[,7]<- str_sub(Data[,7],-3,-1)
Da passiert allerdings nicht so viel :(
Kann mir jemand helfen?
Viele Grüße

Benutzeravatar
EDi
Beiträge: 693
Registriert: Sa Okt 08, 2016 3:39 pm

Re: die letzten 3 Zeichen in einer Spalte extrahieren und ab

Beitrag von EDi » Do Dez 06, 2018 10:32 pm

So hier?

Code: Alles auswählen

df <- data.frame(x =  "Per Booking 5 EUR", stringsAsFactors = FALSE)
df$Currency <- substr(df$x, nchar(df$x)-2, nchar(df$x))
df
Bitte immer ein reproduzierbares Minimalbeispiel angeben. Meinungen gehören mir und geben nicht die meines Brötchengebers wieder.

Dieser Beitrag ist lizensiert unter einer CC BY 4.0 Lizenz
Bild.

jogo
Beiträge: 1021
Registriert: Fr Okt 07, 2016 8:25 am

Re: die letzten 3 Zeichen in einer Spalte extrahieren und ab

Beitrag von jogo » Fr Dez 07, 2018 8:33 am

oder vielleicht sowas:

Code: Alles auswählen

x <-  c("Per Booking 5 EUR", "und noch was mit 17 USD")
y <- lapply(strsplit(x, " +"), rev)
sapply(y, '[', 1) ### Währung
sapply(y, '[', 2) ### Betrag
:?:

Gruß, Jörg

blacklabel5
Beiträge: 15
Registriert: Fr Aug 10, 2018 11:05 am

Re: die letzten 3 Zeichen in einer Spalte extrahieren und ab

Beitrag von blacklabel5 » Mo Dez 10, 2018 8:49 am

hey ihr beiden,
sorry für die späte antwort, hatte viel zu tun
ja, das ist perfekt! danke

Antworten

Wer ist online?

Mitglieder in diesem Forum: jogo, Kramer und 1 Gast