R for循环中的变量
当向量的元素等于参考向量的元素时,我在R中运行一个循环来寻找向量的索引 就我所知,我需要在for循环之前声明变量,但在本例中,我不知道索引向量的最终长度(请参阅下面的代码)。 如何创建允许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
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()对我来说都是新函数。他们将来会对我很有帮助的!老实说,在循环中追加可能不是最好的主意,因为它每次都要复制所有内容。在循环中使用列表可能是一种更好的方法,如果需要的话,可以在循环完成后将其全部组合在一起。