R Language
リサイクル
サーチ…
備考
Rのリサイクルは何ですか?
リサイクルは、特定の操作でオブジェクトが自動的に拡張されて、別の長いオブジェクトの長さに一致する場合です。
例えば、ベクトル化された加算の結果は次のようになります。
c(1,2,3) + c(1,2,3,4,5,6)
[1] 2 4 6 5 7 9
リサイクルのために、実際に起こった操作は:
c(1,2,3,1,2,3) + c(1,2,3,4,5,6)
より長いオブジェクトが短いオブジェクトの倍数でない場合、警告メッセージが表示されます。
c(1,2,3) + c(1,2,3,4,5,6,7)
[1] 2 4 6 5 7 9 8
Warning message:
In c(1, 2, 3) + c(1, 2, 3, 4, 5, 6, 7) :
longer object length is not a multiple of shorter object length
リサイクルのもう一つの例:
matrix(nrow =5, ncol = 2, 1:5 )
[,1] [,2]
[1,] 1 1
[2,] 2 2
[3,] 3 3
[4,] 4 4
[5,] 5 5
サブセッティングでのリサイクル使用
リサイクルは、コードを単純化するための巧妙な方法で使用できます。
サブセッティング
ベクトルの3番目の要素をすべて保持したい場合、次のことができます:
my_vec <- c(1,2,3,4,5,6,7,8,9,10)
my_vec[c(TRUE, FALSE)]
[1] 1 3 5 7 9
ここで論理式はベクトルの長さに拡張されました。
また、リサイクルを使用して比較を行うこともできます。
my_vec <- c("foo", "bar", "soap", "mix")
my_vec == "bar"
[1] FALSE TRUE FALSE FALSE
ここで「バー」はリサイクルされます。
Modified text is an extract of the original Stack Overflow Documentation
ライセンスを受けた CC BY-SA 3.0
所属していない Stack Overflow