R
1install.packages("imager") 2library(imager) 3img = load.image( "boats.png" ) 4plot( img ) 5boats[ , , 1, 1 ]
上のコードで、boatsの画像情報を表示できます。また、
R
1boats[ 10, 20, 1, 1 ] # x = 10, y = 20 座標の R の画素値
上のコードで、boats画像のある座標のRGB情報を得られます。
この、各位置のRGB情報に対して
R
1 x <- 2 2 if (x > 0) { # if ( 条件式 ) 3 sum(1:x) # 条件式が TRUE のときに実行される部分 4 } else { 5 x <- -x # 条件式が FALSE のときに実行される部分 6 sum(1:x) # 7 } 8 9if (x > 0) { # if ( 条件式 ) 10 sum(1:x) # 条件式が TRUE のときに実行される部分 11} else { 12 x <- -x # 条件式が FALSE のときに実行される部分 13 sum(1:x) # 14}
こんな感じのifや、forを使って、ある条件を満たすものだけを抽出したりなどしたいのですが、どうするのでしょうか・・・。
boats[ 10, 20, x, y ] などできればいいのですが、いまいちやり方が。
回答を受けて
ちょっと説明が足りていなかったようです、自分でもコードを組みましたができなかったので、
どうやるのかなと。自分で組んだコードを以下に貼ります。例えば、
R
1for (x in 1:5) { 2boats[ x, 20, 1, 1 ] 3}
こういうのです。boatsは、ちゃんと表示されます。
boats[ 1, 20, 1, 1 ]とすればちゃんと小数が表示されます、しかしこのようない、
1から5まで表示、ということができない、これを実行しても「何も表示されません」。
これはfor文ですが、if文は、以下はちゃんと実行、表示されます。
R
1x <- 1 2if (boats[ x, 20, 1, 1 ] > 0.5) { 3print(x) 4} else { 5print(0) 6}
試行錯誤した結果、なぜか
R
1for (x in 1:5) { 2z <- boats[ x, 20, 1, 1 ] 3print(z) 4}
これだとできたんですが、他にやり方あります?
回答1件
あなたの回答
tips
プレビュー