Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/73.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R for循环中的变量_R_For Loop - Fatal编程技术网

R for循环中的变量

R for循环中的变量,r,for-loop,R,For Loop,当向量的元素等于参考向量的元素时,我在R中运行一个循环来寻找向量的索引 就我所知,我需要在for循环之前声明变量,但在本例中,我不知道索引向量的最终长度(请参阅下面的代码)。 如何创建允许R在for循环期间更改其大小的变量 我的代码摘录: k <- 1 for(i in 1:length(Lid.time)){ ind <- which(Net.time==Lid.time[i]) if(length(ind)>0){ ind.Net[k] <- ind

当向量的元素等于参考向量的元素时,我在R中运行一个循环来寻找向量的索引

就我所知,我需要在for循环之前声明变量,但在本例中,我不知道索引向量的最终长度(请参阅下面的代码)。 如何创建允许R在for循环期间更改其大小的变量

我的代码摘录:

k <- 1
for(i in 1:length(Lid.time)){
  ind <- which(Net.time==Lid.time[i])
  if(length(ind)>0){
    ind.Net[k] <- ind
    k <- k+1
  }
}

k不需要循环,因为它听起来像是
match
做了你想要的事情

a <- 1:10
b <- c(2, 7, 9)
match(a, b)
# [1] NA  1 NA NA NA NA  2 NA  3 NA

a不需要循环,因为它听起来像是
match
做你想做的事

a <- 1:10
b <- c(2, 7, 9)
match(a, b)
# [1] NA  1 NA NA NA NA  2 NA  3 NA

a正如Dason所说,
match
可以很好地完成特定任务:

>a <- seq(2,20,2)
   #[1]  2  4  6  8 10 12 14 16 18 20
>b <- c(4,14,18)
>match(b,a)
   #[1] 2 7 9  # The indices!
>a %in% b #shorthand logical version of match
   #[1] FALSE  TRUE FALSE FALSE FALSE FALSE  TRUE FALSE  TRUE FALSE
>a b匹配(b,a)
#[1] 2 7 9#指数!
>%b中的%a#匹配的速记逻辑版本
#[1] 假真假假假假真假假
但要回答你关于循环中长度未知的向量的问题:

Vector <- c()
for(i in sample(1:100,20)) {
    if(i<50) {Vector <- append(Vector, i)}
    }
length(HowLongIsThisVector)

Vector正如Dason所说,
match
对于该特定任务非常有效:

>a <- seq(2,20,2)
   #[1]  2  4  6  8 10 12 14 16 18 20
>b <- c(4,14,18)
>match(b,a)
   #[1] 2 7 9  # The indices!
>a %in% b #shorthand logical version of match
   #[1] FALSE  TRUE FALSE FALSE FALSE FALSE  TRUE FALSE  TRUE FALSE
>a b匹配(b,a)
#[1] 2 7 9#指数!
>%b中的%a#匹配的速记逻辑版本
#[1] 假真假假假假真假假
但要回答你关于循环中长度未知的向量的问题:

Vector <- c()
for(i in sample(1:100,20)) {
    if(i<50) {Vector <- append(Vector, i)}
    }
length(HowLongIsThisVector)

Vector谢谢你的回答!这三个函数sample()、match()和append()对我来说都是新函数。他们将来会对我很有帮助的!老实说,在循环中追加可能不是最好的主意,因为它每次都要复制所有内容。在循环中使用列表可能是一种更好的方法,如果需要的话,你可以在循环结束后将其全部组合在一起。谢谢你的回答!这三个函数sample()、match()和append()对我来说都是新函数。他们将来会对我很有帮助的!老实说,在循环中追加可能不是最好的主意,因为它每次都要复制所有内容。在循环中使用列表可能是一种更好的方法,如果需要的话,可以在循环完成后将其全部组合在一起。