在for循环中使用if(any())

时间:2013-06-21 20:00:25

标签: r if-statement for-loop any

我想生成一个循环:

group1 = c(1,3,7,25)

for (ii in 1:25){
    if (ii == any(group1)){test = 5} else {test=1}
}

我收到一条关于强制我的类型' double'合乎逻辑的。结果是只使用了我的else语句。这是什么意思,我该如何解决这个问题?谢谢。

2 个答案:

答案 0 :(得分:1)

目前还不清楚你想要什么。可能

 test <- c(1,5)[1+(1:25) %in% group1]

结果如下:

test <- ifelse( 1:25 %in% group1, 5, 1)

哦,好的,我也会制作for - loopy版本:

test <- integer(25)
for (ii in 1:25){
   if (ii %in% group1){test[ii] <- 5} else {test[ii] <- 1}
                }
test

答案 1 :(得分:0)

你使用了错误的任何功能

any(iterable) 

如果iterable的任何元素为true,则返回True。如果iterable为空,则返回False。