Для многомерных массивов может быть сложно получить доступ к свойству length
правого измерения. Возьмем следующий код, например:
int [][][] a = new int [2][3][4];
for(int i = 0; i < a.length; i++){
for(int j = 0; j < a[i].length; j++){
for(int k = 0; k < a[j].length; k++){
System.out.print(a[i][j][k]);
}
System.out.println();
}
System.out.println();
}
Каждое измерение имеет разную длину, поэтому тонкая ошибка заключается в том, что средняя и внутренняя петли используют свойство length
той же размерности (поскольку a[i].length
(f5)).
Вместо этого внутренний цикл должен использовать a[i][j].length
(или a[0][0].length
для простоты).
Вы можете позвонить as.character
либо по DNAString
, либо по DNAStringSet
.
as.character(tempo[1 : 5])
# [1] "G" "T" "A" "T" "T"
Простой цикл решает проблему, используя функцию toString той же библиотеки:
ALT <-0
for (i in 1:nrow(vcf)){ ALT[i] <- toString(tempo[[i]]) }
Однако я понятия не имею, почему tempo @ unlistData извлекает слишком много строк. Это не заслуживает доверия.