2016-05-24 8 views
0

У меня есть две переменных а и Ь в наборе данных лоэкстракта символов из переменных

a        b 
dflsfufdsbhfsdjklfhsajkdfksf  5 
sdnfsdhfuisdflkjsdnjkfksflsdfk 8 

Я хочу создать новую переменные с, что я хочу, чтобы извлечь символы из varaibles а из позиции (значение Названия переменных б) до 8 символов.

ниже требуемый выход

c 
fufdsbhf 
fuisdflk 

Я использовал ниже код.

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

но выше давая ниже результаты

c 
fufd 
f 
+1

Вы пробовали это: 'ла $ с [i1] <-substr (ли $ а [i1], л $ б [i1], л $ б [i1] +8) '? –

ответ

1

stop вариант в substr определяет, в какой символ в векторе символов, чтобы остановить, а не как многие персонажи должны взять после start.

Так что это следует сделать это:

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

Это должно сделать это,

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

Без loop, вы можете использовать функцию apply для dataframe

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