У меня есть символьный вектор, который выглядит как (dput
output):
c(" genotype[0]= rv props(rr,rv,vv)= 0.000 0.944 0.056 reads= 10 , variants= 7",
" genotype[1]= na ", " genotype[2]= rv props(rr,rv,vv)= 0.000 1.000 0.000 reads= 16 , variants= 8",
" genotype[3]= rv props(rr,rv,vv)= 0.001 0.999 0.000 reads= 13 , variants= 5",
" genotype[4]= vv props(rr,rv,vv)= 0.000 0.489 0.511 reads= 10 , variants= 8",
" genotype[5]= vv props(rr,rv,vv)= 0.000 0.051 0.949 reads= 10 , variants= 9",
" genotype[6]= rr props(rr,rv,vv)= 1.000 0.000 0.000 reads= 20 , variants= 0",
" genotype[7]= rv props(rr,rv,vv)= 0.000 1.000 0.000 reads= 15 , variants= 7",
" genotype[8]= rr props(rr,rv,vv)= 0.975 0.025 0.000 reads= 7 , variants= 0",
" genotype[9]= vv props(rr,rv,vv)= 0.000 0.001 0.999 reads= 17 , variants= 16"
)
Я хотел бы вернуть второе значение в триплете вероятностей для каждого символьного вектора, то есть 0,944, 0,999 и др c. Однако я также хочу, чтобы NULL
или что-то еще в результате указывало, что строка, начинающаяся с genotype[1]
, не соответствует.
Мой код выглядит так:
regmatches(genotype_strings, regexpr("[[:digit:]].[[:digit:]]+ [[:digit:]].[[:digit:]]+ [[:digit:]].[[:digit:]]+", genotype_strings))
Хотя В результате всего 9 элементов, а хотелось бы 10.
Заранее спасибо!