0

我想像这样生成一个循环:

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

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

我收到关于将我的“双重”类型的论点强制为逻辑的警告。结果是只使用了我的 else 语句。这是什么意思,我该如何解决这个问题?谢谢你。

4

2 回答 2

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
于 2013-06-21T20:16:19.793 回答
0

您使用了错误的任何功能

any(iterable) 

如果可迭代的任何元素为真,则返回真。如果可迭代对象为空,则返回 False。

于 2013-06-21T20:03:33.783 回答