0

私はそのようなループを生成したいと思います:

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

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

'double' 型の引数を論理型に強制することに関する警告が表示されます。その結果、else ステートメントのみが使用されています。それはどういう意味ですか、どうすれば修正できますか? ありがとうございました。

4

2 に答える 2

1

あなたが何を望んでいるかは正確には明らかではありません。もしかして

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

次と同じ結果:

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

オーケー、forルーピーバージョンも作ります:

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) 

iterable のいずれかの要素が true の場合、True を返します。iterable が空の場合、False を返します。

于 2013-06-21T20:03:33.783 に答える