投稿

ラベル(points)が付いた投稿を表示しています

Rで10進数→16進数、16進数→10進数の変換

イメージ
10進数から16進数に変換する方法の1つとして、sprintfを使う方法があります。 > sprintf(" %X ", 0:31)    [1] "0"  "1"  "2"  "3"  "4"  "5"  "6"  "7"  [9] "8"  "9"  "A"  "B"  "C"  "D"  "E"  "F" [17] "10" "11" "12" "13" "14" "15" "16" "17" [25] "18" "19" "1A" "1B" "1C" "1D" "1E" "1F" 16進といえば、色のRGB値を指定するときに使ったりしますが、その場合は "7" とか "F" ではなく "07" とか "0F" とかの形で欲しいですよね。 そういうときは、 > sprintf(" %02X ", 0:31)  [1] "00" "01" "02" "03" "04" "05" "06" "07"  [9] "08" "09" "0A" "0B" "0C" "0D" "0E" "0...

Rで円を描く方法あれこれ

イメージ
グラフに円を描くような関数が用意されていてもよさそうなものですが、どうもないみたいですので、自力で描く必要がありそうです。 簡単のため、半径1の円の例です。 まず思いつくのは、   x^2 + y^2 = 1 をyについて解いて、   y = ±√(1 - x^2) という関数の形にして、curve関数を使って描く方法でしょうか↓ curve関数で上側と下側を別々に描く curve ( sqrt ( 1 -x^ 2 ) , xlim= c ( - 1 , 1 ) , ylim= c ( - 1 , 1 ) , asp= 1 ) curve ( - sqrt ( 1 -x^ 2 ) , xlim= c ( - 1 , 1 ) , ylim= c ( - 1 , 1 ) , add=T ) 媒介変数表示を使うやり方もありますね。  x = cosθ  y = sinθ の、x と y の組を plotしていく感じです↓ 媒介変数で座標を求めたあとにプロット theta <- seq ( - pi , pi , length = 100 ) plot ( cos ( theta ) , sin ( theta ) , type= "l" , asp= 1 ) ちなみに type=l オプションを忘れると↓こんな感じになります。 点でプロットすると理屈が分かりやすい plot ( cos ( theta ) , sin ( theta ) , asp= 1 ) 何度も使う場合は、中心座標や半径を引数として関数化しておくといいですね↓ こんなところに隠れミッキーが!(自分で描いたくせに) plot.circle <- function ( x , y , r ) { theta <- seq ( - pi , pi , length = 100 ) points ( x + r* cos ( theta ) , y + r* sin ( theta ) , type= "l" , asp= 1 ) } plot ( c ( -...