Rで次のマトリックスを作成しました。
positions = cbind(seq(from = 20, to = 68, by = 4),seq(from = 22, to = 70, by = 4))
次の文字列もあります。
"SEQRES 1 L 36 THR PHE GLY SER GLY GLU ALA ASP CYS GLY LEU ARG PRO "
apply関数を使用して、最初のインデックスがpositions [、1]から取得され、2番目のインデックスがpositions [、2]から取得されるサブストリング(mystring、start.position、end.position)のリストを作成しようとしています。これはforループで簡単に実行できますが、applyの方が高速だと思います。
私はそれを次のように機能させることができますが、よりクリーンな方法があるかどうか疑問に思っています:
parse.me = cbind(seq(from = 20, to = 68, by = 4),seq(from = 22, to = 70, by = 4), input)
apply(parse.me, MARGIN = 1, get.AA.seqres)
get.AA.seqres <- function(items){
start.position = as.numeric(items[1])
end.position = as.numeric(items[2])
string = items[3]
return (substr(string, start.position, end.position) )
}