我有一个命名向量:myvec <- c(a='aaa', b='bbb', c='ccc')
,我用for
处理它:
for (memb in myvec){
cat(memb, '\n');
}
这样可以正常工作,但是如果我想在相同的周期中获取名称,那会怎么样:
for (memb in myvec){
cat(name(memb)); # something for `name()`
cat(': ', memb, '\n');
}
答案 0 :(得分:2)
是否有任何理由无法使用myvec
的索引进行循环?
myvec <- c(a='aaa', b='bbb', c='ccc', b='ddd')
for(i in 1:length(myvec)){
cat(names(myvec)[i])
cat(': ', myvec[i], '\n')
}
答案 1 :(得分:0)
这取决于您对重复项的处理方式。这是我的简单解决方案:
myvec <- c(a='aaa', b='bbb', c='ccc',d='bbb')
for (memb in myvec){
cat(names(myvec[myvec==memb])); # returns all names of the value
cat(': ', memb, '\n');
}
输出:
a: aaa
b d: bbb
c: ccc
b d: bbb