投稿

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

「データの見えざる手」のU分布を、Rでシミュレート(改)

イメージ
↓以前、こちらの記事を書いたのですが、 「データの見えざる手」のU分布を、Rでシミュレート よくよく見てみると、書籍と軸の取り方が違ったりして、つっこみどころ満載だったので、悔い改めて、ちゃんとやることにしました。 書籍では、横軸がマスに入っている個数、縦軸が累積確率になっていました。 あと、初期値もちゃんとランダムで設定するようにしました。 それと、対数プロットする際に、軸の目盛ラベルの付けやすさから、ggplotを使ってみました。 library(ggplot2) library(scales) n <- 72000 # 点の個数 m <- 900   # マスの個数 masu <- numeric(m) # 空のマスを用意 # 点をランダムにマスに配置 indices <- sample(1:900, 72000, replace=T) for(i in indices){   masu[i] <- masu[i] + 1 } for( i in 1:100000000 ) {   s <- sample(1:m, 2) # ランダムに2つのマスを選ぶ   if( masu[s[1]] != 0 ) { # 無い袖は振れないケースへの対処     masu[s[1]] <- masu[s[1]] - 1 # 1つ目のマスから取って、     masu[s[2]] <- masu[s[2]] + 1 # 2つ目のマスへ入れる   } } tbl <- table(masu)     # 個数を集計 df <- data.frame(tbl) # データフレームにする # 列名を分かりやすくする colnames(df) <- c("num_of_dots", "freq") # 点の数が因子型なので、整数型に変えておく df$num_of_dots <- as.integer(df$num_of_dots) # 累積確率を計算 df$cum_prob <- rev(cumsum(rev(df$f...

Rで、福岡市オープンデータサイトのCSVファイルを扱いやすいように加工する

イメージ
福岡市のオープンデータのサイト に「福岡市の大気環境測定結果(直近48時間)」というCSVデータが公開されています。 Rでこれを取り込みたいときは、 d <- read.csv("http://ckan.open-governmentdata.org/dataset/ef0a812c-538b-4e54-ae3e-b22022a7c83a/resource/c60ccc29-811d-44f8-9aba-dcb660387927/download/kankyodata48.csv") とするだけでOK。(URLが長くてごちゃごちゃしてますが、read.csvにダブルクォートで指定しているだけです) でも、中身を見てみると、いまいち使いにくそうなフォーマットなんですよね。 head(d)とやれば分かりますが、ちょっと列が多いので、列名だけ表示させてみます。 > colnames(d) [1] "年月日" "測定局名称" "測定項目名称" "緯度" [5] "経度" "単位" "測定値.1時." "測定値.2時." [9] "測定値.3時." "測定値.4時." "測定値.5時." "測定値.6時." [13] "測定値.7時." "測定値.8時." "測定値.9時." "測定値.10時." [17] "測定値.11時." "測定値.12時." "測定値.13時." "測定値.14時." [21] "測定値.15時." "測定値.16時." "測定値.17時." "測定値.18時." [25] "測定値.19時." "測定値.20...