裏 RjpWiki さん プロフィール

  •  
裏 RjpWikiさん: 裏 RjpWiki
ハンドル名裏 RjpWiki さん
ブログタイトル裏 RjpWiki
ブログURLhttps://blog.goo.ne.jp/r-de-r
サイト紹介文文字通り,RjpWiki の裏を行きます
参加カテゴリー
更新頻度(1年)情報提供87回 / 365日(平均1.7回/週) - 参加 2014/11/25 07:58

裏 RjpWiki さんのブログ記事

  • Pweave の入力と出力の区別
  • そのまんまでは,入力と出力のフォーマットに全く違いがない。ので,まぎらわしい。Sweave のようには行かず,インタラクティブモードのように,入力の前にプロンプトがつくようにはできないようだ。そこで,LaTeX の listings を使う。listings.sty と jlisting.sty を用意して,プリアンブルで以下を定義しておく。usepackage{listings,jlisting}lstset{% basicstyle={ttfamilynormalsize},% frame={tbrl}, numbers=left,% [続きを読む]
  • Pweave のコードチャンク・オプション
  • ネームなしのオプションは name または labelすなわち,以下の 3 つ,name="aaa", label="aaa", aaa は同じもので,チャンクの名前を定義するecho=True or (False)コードチャンクのエコー出力をするかどうかevaluate=True or (False)コードチャンクを評価するかどうかresults="verbatim" or ("hidden")結果をテキスト出力("verbatim"),出力しない("hidden")"tex", "rst" は未実装?term=False or (True)False のときは,結果はま [続きを読む]
  • Pweave の TeXShop engine
  • Sweave engine の最初の部分だけを以下のように変更して使う。mp = function(file, makeindex=FALSE, silent=FALSE,
    deletePdfs=FALSE, deleteWorkfiles=FALSE, ...) { Sys.setlocale("LC_ALL", "ja_JP.UTF-8") if (grepl("."
    ;, file) == FALSE) { file = paste(file, "Rnw", sep=".") } cat("Input file:", file, "n") cm
    d = sprintf("pweave -f tex %s", file) system(cmd) base = sub(".Rnw", "", file)   [続きを読む]
  • Pweave --- Sweave for python
  • R のための Sweave と同じような感じで,python のための Pweave(http://mpastell.com/pweave/) を使ってみる。以下で,全角の <,> は,実際は半角でTeXShop を使って,*.Pnw --> *.tex ---> *.pdf の操作を行うにあたって,大問題がある。それは,TeXShop は .Pnw などという拡張子を認識しないということである(.Rnw は認識するのに)。仕方ないから,.Rnw を流用することにするが,何とかならないか?● チャンクの記述法 [続きを読む]
  • Pweave --- Sweave for python
  • R のための Sweave と同じような感じで,python のための Pweave(http://mpastell.com/pweave/) を使ってみる。以下で,全角の <,> は,実際は半角でTeXShop を使って,*.Pnw --> *.tex ---> *.pdf の操作を行うにあたって,大問題がある。それは,TeXShop は .Pnw などという拡張子を認識しないということである(.Rnw は認識するのに)。仕方ないから,.Rnw を流用することにするが,何とかならないか?● チャンクの記述法 [続きを読む]
  • TeXShop で Sweave
  • TeXShop で用意されている engine に Sweave 用のものがないので,作ってみた。基本的には,以下のようであるが,肝は Sweave 関数の前に,Sys.setlocale("LC_ALL", "ja_JP.UTF-8") を置くこと。これがないと locale が "C" になっているので,日本語が正しく処理されない。このファイルを Sweave.engine と名付けて,Engines フォルダに放り込んでおく。選択肢に "Sweave" が加わる。#!/usr/local/bin/Rscript --vanilla --defaul [続きを読む]
  • Sweave.sty
  • Sweave で,>==ans logLik(ans)@のようなチャンクを含む *.Rnw をSweave ==> uplatex ==> dvipdfmx すると,*.dvi ファイルを *.pdf ファイルにする際にkpathsea: Running mktexpk --mfmode / --bdpi 600 --mag 1+0/600 --dpi 600 tcrm1000mktexpk: Cannot find mktex.opt; check your installation.kpathsea: Appending font creation commands to missfont.log.dvipdfmx:warning: Could not locate a virtual/physical font for [続きを読む]
  • 文字列としての連結と"+"演算子
  • "+" を文字列連結演算子とする場合"+" = function(e1, e2) { if (is.numeric(e1) && is.numeric(e2)) {
    base::"+"(e1, e2) } else { paste0(e1, e2) }}> "abc" + "12345" + "あいうえお"[1] &
    quot;abc12345あいうえお"> 123456 + "numeric"[1] "123456numeric"> 456 + 100[1] 556> 456L + 1
    00L[1] 556> 456 + 0[1] 456> TRUE + FALSE[1] "TRUEFALSE"> "123" + TRUE + "asd"[1] "123T
    RUEasd"> (1 == 1) + (2 != 3)[1] [続きを読む]
  • 文字列としての連結と"&"演算子
  • 文字列と文字列の連結は,言語によって異なる記号が演算子として使われているが,R では二項
    演算子ではなく paste 関数,paste0 関数が使われる。> paste("asd", "poi", sep="")[
    1] "asdpoi"> paste0("asd", "poi")[1] "asdpoi"> paste0(123, "asd")[1] "
    ;123asd"> paste0(123, TRUE)[1] "123TRUE"> paste0(123, T)[1] "123TRUE"> paste0(TRUE, FALSE)[1] &q
    uot;TRUEFALSE"TRUE と FALSE を連結するなんてことは普通は考えないこと。& 記 [続きを読む]
  • 大きい数の積や商(その2)
  • 超幾何分布要因 a, b が独立な場合,以下のような分割表が得られる確率を求める B not(B) sumA x o mnot(A) (k-x) o nsum k o (m+n)超幾何分布により,求める確率は xCm * xCk-x / m+nCkR の dhyper の引数はちょっと変で(?),x が生じる確率は dhyper(x, m, n, k) B [続きを読む]
  • 大きい数の積や商
  • 二項分布 B(x, n, p) = nCx p^x (1-p)^(n-x) の計算R では,dbinom(x, n, p) で速く,簡単に求まるこれを,自分で計算してみるとどうなるかをやってみる。式をそのまま記述すると以下のようになる。options(digits = 15)f = function(x, n, p) { return(choose(n, x) * p ^ x * (1 - p) ^ (n - x))}n が小さいうちは,これでも十分である。> x = 0> n = 10> p = 0.5> dbinom(x, n, p)[1] 0.0009765625> f(x, n, p)[1] 0.00097656 [続きを読む]
  • ダミー変数を作る
  • factor 変数の場合> fac = factor(c("c", "a", "b", "b", "a", "c"
    , "b"))> z = levels(fac)> t(sapply(fac, function(x) z %in% x))[, -1] + 0 [,1] [,2][1,] 0 1[2,] 0 0[3,] 1 0[4,] 1 0
    [5,] 0 0[6,] 0 1[7,] 1 0数値変数の場合> num = c(1, 3, 2, 1, 3, 3, 2)> z = as.numeric(names(table(num)))> t(sapply(
    num, function(x) z [続きを読む]
  • 変換多項式
  • 変換テーブル(前の 2 つの記事)のかわりに,変換多項式を使う> x = 1:4> y = c(11, 13, 15, 50)> lm(y ~ x+I(x^2)+I(x^3))Call:lm(formula = y ~ x + I(x^2) + I(x^3))Coefficients:(Intercept) x I(x^2) I(x^3) -24.0 62.5 -33.0 5.5 > f = function(x) -24+62.5*x-33*x^2+5.5*x^3> sapply(c(1, 2, 3, 1, 1, 2, [続きを読む]
  • 「奇数和平方数」問題
  • 「奇数和平方数」問題http://riverplus.hatenablog.com/entry/2018/02/25/143351自然数 n に対し、連続する n 以下の奇数の和が平方数(自然数の 2 乗で表される数)となるものを探します。 例えば n = 10 の場合、以下の 7 通りです。項が 1 つだけのものもカウントしている点に注意して下さい。  1 = 1^2  1+3 = 2^2  1+3+5 = 3^2  9 = 3^2  1+3+5+7 = 4^2  7+9 = 4^2  1+3+5+7+9 = 5^2このよう [続きを読む]
  • 「メダルツアー」問題
  • 「メダルツアー」問題http://riverplus.hatenablog.com/entry/2018/02/25/143351自然数 w, h に対し、横と縦の長さがそれぞれ w, h となる格子状の道を考えます。さらに、自然数 m に対し、左から m 番目の縦の道の、各交差点の中間にメダルが 1 個ずつ置いてあります。例えば下図は、w, h, m = (4, 3, 2) のときの様子です。この図の左下の点からスタートして、右上のゴールまで最短距離で向かいます。途中で通過したメダルはすべ [続きを読む]
  • ナンプレを解くプログラム
  • ナンプレを解くプログラム締め切りが 2018/03/07 10:00 AM なので,その 1 分後に投稿されるように予約【概要】簡単なナンプレの問題を解くプログラムを書いてみましょう。【問題】次のようなナンプレがあります。・2x2のマス(Box)が縦横ふたつずつ並んだ4x4のマスがある・それぞれのマスには1~4の数字が入り、それらは行/列の4つのマスに同じ数字がくることはない(行/列の合計は10となる)・2x2のマス(Box)にも同じ数字が [続きを読む]
  • 壊れたパスカルの三角形
  • 壊れたパスカルの三角形締め切りが 2018/02/21 10:00 AM なので,その 1 分後に投稿されるように予約設問 【パスカルの三角形】パスカルの三角形は、上記のように隣り合った数の和を下段に書くことで作ることができます。【問題】パスカルの三角形を作るとき、隣り合った数の和を下段に追加していきますが、一か所だけ差を計算してしまっています。次の図では、4段目・左から3つ目の値が、2 - 1 = 1になっているので、そこから下の [続きを読む]
  • 集合写真できれいに写る配置は何通り?
  • 集合写真できれいに写る配置は何通り?締め切りが 2018/02/20 10:00 AM なので,その 1 分後に投稿されるように予約設問 みんなで集合写真を撮るときの並び方の配置を考えます。人数が少なければ一列に並ぶこともありますが、横に長くなると図のように複数列に並ぶことがあります。複数列に並ぶときは、互い違いに並ばないと全員の顔が見えないので、前の人の間から顔が見えるように並びます。また、隣の人とは間を空けずに並ぶも [続きを読む]
  • 一流を見分けられるのは誰?
  • 一流を見分けられるのは誰?締め切りが 2018/02/18 10:00 AM なので,その 1 分後に投稿されるように予約今日のTVでは芸能人に何が一流品かを当てさせてその人を格付けする番組が人気ですが、こういった順位付けするという処理は、検索エンジンやレコメンドシステムといった日常的に使われるサービスの中でも極めて重要な役割を担っています。さて、こうした順位付け問題はどのように評価するのが良いでしょうか?順位付けを行う側 [続きを読む]
  • 「LCM・パレード」問題
  • 「LCM・パレード」問題締め切りが 2018/02/18 10:00 AM なので,その 1 分後に投稿されるように予約自然数 a, b に対し、a と b の最小公倍数を LCM(a, b) と定義します。例えば、LCM(6, 8)=24 です。さらに、自然数 n, k に対し、n 以下の全ての自然数 m に対する LCM(k, m)÷k の値の和を F(n, k)と定義します。例えば F(9, 12)=22 です。以下の表の最下列の数の和です。同様に、F(10, 3)=43, F(20, 9)=162 となることが [続きを読む]
  • 切手を切って!
  • 切手を切って!締め切りが 2018/02/14 10:00 AM なので,その 1 分後に投稿されるように予約設問 次のような切手シートがあります。この切手シートから、3枚の切手がつながったまま切り取る方法は、以下のように10通りあります。【問題】切手シートの、たて・よこ・切り取りたい枚数が与えられたとき、切り取り方の総数を求めてください。たて・よこの枚数は、いずれも1〜10枚、切り取りたい枚数は1〜5枚を想定してください。【 [続きを読む]