如何在 R 中的向量或列表中存储 for 循环的结果



我想运行一个简单的for循环并将值存储在列表或向量中。例如:

ex = c(10,11,17)

for (i in (0:length(ex))){
if ex[i] < 12 {
# store the value in a vector
}
}

当我不知道向量的长度,因此无法首先定义它时,我该怎么做?

另一个基本 R 选项是使用na.omit+ifelse

na.omit(ifelse(ex<12,ex,NA))

你可以在没有循环的情况下做到这一点for

ex[ex < 12]
#[1] 10 11

或使用Filter

Filter(function(x) x < 12, ex)

但是,如果您想使用循环执行此操作for您可以尝试:

count <- 1
result_vec <- numeric()
for (i in ex) {
if (i < 12) {
result_vec[count] <- i
count <- count + 1
}
}

您可以分配最大可能的大小矢量,仅部分填充它,然后将其缩小。

ex = c(10,11,17,9,14,1,20,1)
store <- list(length(ex))
for (i in (1:length(ex))){
if(ex[i] < 12){
store[[i]] <- ex[i]
}
}
unlist(store)
[1] 10 11  9  1  1

最新更新