我想运行一个简单的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