2016-05-24 10 views
0

Ich habe zwei Variablen a und b in-Datensatz laExtrakt Zeichen aus der variable

a        b 
dflsfufdsbhfsdjklfhsajkdfksf  5 
sdnfsdhfuisdflkjsdnjkfksflsdfk 8 

Ich möchte, eine solche neue Variable c erstellen, dass i von Position Zeichen aus dem varaibles a extrahiert werden soll (Wert von varaible b) bis 8 Zeichen.

unten ist die gewünschte Ausgabe

c 
fufdsbhf 
fuisdflk 

I unten Code verwendet haben.

la$c[i1] <-substr(la$a[i1],la$b[i1],8) 

aber oben geben unter

führt seine
c 
fufd 
f 
+1

Haben Sie versucht: 'la $ c [i1] <-substr (la $ a [i1], la $ b [i1], la $ b [i1] +8) '? –

Antwort

1

Die stop Option in substr an, welches Zeichen in einem Zeichenvektor zu stoppen definiert, nicht wie viele Zeichen zu nehmen nach der start.

So sollte es tun:

la$c[i] <- substr(la$a[i], la$b[i], la$b[i]+7) 
2

Dies sollte es tun,

df$c <- substr(df$a, df$b, df$b+7) 
df$c 
#[1] "fufdsbhf" "fuisdflk" 
0

Ohne loop, können Sie verwenden apply Funktion für eine dataframe

ab$c <- sapply(ab, function(x){substr(x,ab$b,ab$b+7)})