web-dev-qa-db-ja.com

Rのループでインデックスを取得する方法

すべての名前のリストを含む文字タイプのベクトルがあります。

だから私はそれぞれの名前をループし、いくつかのアクションを実行しています。このループは、インデックス/長さに基づいていません(このように保ちたいです)。

ただし、ループ内のインデックス値にアクセスする場合は、どうすれば取得できますか。

例:

names <- c("name1", "name2")

for(name in names){

#do something
print(name)

#here how would I get the index number? like 1, 2 etc?

}
9
yome

このようなことを行うことができます。これは文字通りi値を取得しています。

names <- c("name1", "name2")
i<-0
for(name in names){
    i<-i+1
    print(i)

}

または、数値インデックスを使用するようにループを変更します

names <- c("name1", "name2")
for(i in 1:length(names)){
    print(i)

}

または、which関数を使用します。

names <- c("name1", "name2")
for(name in names){

    print(which(name == names))

}
12
Elin

さまざまな場合:

names <- c("name1", "name2")
for(i in seq_along(names)){
    print(i)
}

seq_alongは高速なプリミティブで、IMOはわずかに甘い構文糖衣です。

3
steevee