R中的for循环中有2个变量

ale*_*lex 3 for-loop r

我想在一个for循环中引用两个向量,但是每个向量的长度都不同。

n=1:50
m=letters[1:14]
Run Code Online (Sandbox Code Playgroud)

我尝试了一个循环来阅读它

for (i in c(11:22,24,25)){
    cat (paste(n[i],m[i],sep='\t'),sep='\n')
}
Run Code Online (Sandbox Code Playgroud)

并最终得到:

11  k
12  l
13  m
14  n
15  NA
16  NA
17  NA
18  NA
19  NA
20  NA
21  NA
22  NA
24  NA
25  NA
Run Code Online (Sandbox Code Playgroud)

但我想获得:

11  a
12  b
13  c
...
25  n
Run Code Online (Sandbox Code Playgroud)

有没有办法有一个双变量声明?

for (i in c(11:22,24,25) and j in 1:14){
    cat (paste(n[i],m[j],sep='\t'),sep='\n')
}
Run Code Online (Sandbox Code Playgroud)

或类似的东西来获得我想要的结果?

Rol*_*and 5

不,没有。但是您可以这样做:

ind_j <- c(11:22,24,25)
ind_k <- 1:14
for (i in seq_along(ind_j)){
  cat (paste(n[ind_j[i]],m[ind_k[i]],sep='\t'),sep='\n')
}
Run Code Online (Sandbox Code Playgroud)

当然,您可能不应该for为实际问题使用循环。