如果
List startCodonIndices = new ArrayList();
int index = 0;
for (int i = 0; i + 3 < dnax.length(); i++) {
index = dnax.indexOf("AUG", i);
if (index != -1) {
startCodonIndices.add(index);
}
List stopCodonIndices = new ArrayList();
int i2, i3, i4;
for (int j = 0; j + 3 < dnax.length(); j++) {
i2 = dnax.indexOf("UGA", j);
System.out.println("i2: "+i2);
if (i2 != -1) {
stopCodonIndices.add(i2);
}
i3 = dnax.indexOf("UAA", j);
System.out.println("i3: "+i3);
if (i3 != -1) {
stopCodonIndices.add(i3);
}
i4 = dnax.indexOf("UAG", j);
System.out.println("i4: "+i4);
if (i4 != -1) {
stopCodonIndices.add(i4);
}
}
for (int v = 0; v < startCodonIndices.size(); v++) {
for (int h = 0; h < stopCodonIndices.size(); h++) {
gene = dnax.substring((int)startCodonIndices.get(v), (int)stopCodonIndices.get(h)+3);
jTextArea1.setText(gene+"\n");
}}
#index为11
我需要a <- c(6,4,5,6,2,6,0,0,1,3,7,0,0)
的列索引。
目的:
我需要将值重新分配给最后一个非零元素,在上面的例子中是7
。
保证向量7
始终以a
个连续的零结尾,其中N
未知。
答案 0 :(得分:5)
你可以尝试
tail(which(a!=0),1)
#[1] 11
答案 1 :(得分:0)
更健壮的版本还可以处理没有非零元素的情况:
max_nonzero_index <- function(a) {
idx <- a != 0
ifelse(any(idx), max(which(idx)), 0)
}
这里的约定是在没有非零元素时为索引返回0。