裏 RjpWiki

文字通り,RjpWiki の裏を行きます
R プログラム コンピュータ・サイエンス 統計学

久しぶりに 裏 RjpWiki

2015年02月05日 | 裏 RjpWiki

baloonplotの行名を並び替えたい」だが,細かいが気になることが満載だ

まず,日本語がだめ。「並び替え」ではなく「並べ替え」だ。

また,行名と列名について,間違って反対に覚えている。

次いで,R のプログラムだが,sample(c(1:16), 100, replace=TRUE)
c(1:16) ってのが 1:16 と同じであることを分かっていない。それを直したとして,
sample(1:16, 100, replace=TRUE)は,遅い。以下のようにする。
sample(16, 100, replace=TRUE)とすべし。理由は sample のソースを見ればわかる。さすれば,
sample(c(0:25), 100, replace=TRUE)と同じ結果を得るための最適コードは,
sample(26, 100, replace=TRUE) - 1だな。
コメント

質問が不得意だと自覚できない質問者

2012年05月19日 | 裏 RjpWiki

> 誰にもわからないかどうかもわからないので少し他の人の回答まってみます。
> いろいろあるみたいです。たとえば、札幌R勉強会とかあるみたいですが、情報ご存知のかた、教えてください。

この質問者は,ほかにもかなりとんちんかんな投稿をしている。

無視するのがよいのかなあ

> 非常に面倒かどうかを知りたいのです。

他の質問内容から見ると,あなたにとっては「非常に面倒」なんでしょうねえ。残念!!

コメント

ダメ出し:計算の無駄,プログラムの無駄をなくする

2012年01月31日 | 裏 RjpWiki

CX's 'reality distortion' pie-graph (フジTV のステマ円グラフ)

元のプログラムは,無駄なことをしているので,プログラムが長く煩雑で,何をやっているのかわかりにくくなっている。

for (i in 1:length(num)) {
  x <- c(0.5 + dx, 0.5 + 0.5 * sin(rad[i]), 0.5 + 0.5 * sin(seq(rad[i], rad[i+1], length.out=div)), 0.5 + 0.5 * sin(rad[i+1]))
  y <- c(0.5 + dy, 0.5 + 0.5 * cos(rad[i]), 0.5 + 0.5 * cos(seq(rad[i], rad[i+1], length.out=div)), 0.5 + 0.5 * cos(rad[i+1]))
  grid.polygon(x=x, y=y, gp=gpar(fill=colors[i]))
  grid.text(引数省略)
}

grid.polygon を描くところは,以下のようにすればよい。
0.5 * sin(rad[i]),0.5 * sin(rad[i+1]) などを付け加える必要はない。
theta も一度計算しておけばよい。

for (i in 1:length(num)) {
  theta <- seq(rad[i], rad[i+1], length.out = div)
  x <- c(dx, 0.5 * sin(theta))
  y <- c(dy, 0.5 * cos(theta))
  grid.polygon(x = 0.5 + x, y = 0.5 + y, gp = gpar(fill = colors[i]))
  grid.text(引数省略)
}

コメント

プログラムの使い方が間違っているのではないか?

2012年01月25日 | 裏 RjpWiki

npパッケージのnpcmstestでbwsで具体的にbandwidthを指定すると「仮引数 ”bws” が複数の実引数にマッチしました」というエラーがでてしまいます

ななみ? (2012-01-21 (土) 21:55:03)

はじめまして。npパッケージでモデルの検定をしています。

model <- lm(Y ~ X, y = TRUE, x = TRUE)
X <- data.frame(X)
npcmstest(model = model, xdat = X, ydat = Y, bws = 1)

のようにバンド幅を指定すると

「仮引数 ”bws” が複数の実引数にマッチしました」

というエラーがでてしまいます。
どなたか、これに対する解決方法をご存じでしたらお教え頂きますようお願い致します。

  • 再現できる最小のサンプルデータがないと答えるのが難しいと思う。bwsが一意でないエラーに見えるけど、サンプルがないと何とも言えない。 -- 2012-01-23 (月) 15:58:06

少なくとも「サンプルがないと何とも言えない」というのは,この場合たぶんまとはずれ。事前に,X <- rnorm(10); Y <- rnorm(10) とでも定義しておくだけで問題は再現する。

問題の核心は,確かに npcmstest では,... 引数で指定できるものとして,bws と bwscaling があり,このような状況では bws を指定すると件のエラーメッセージが出るのは必至。

にもかかわらずこれが問題にならない・なっていないのは,そもそもこのような使い方はないのか,単なる放置されたバグなのか,判断にこまるところ。

コメント

陰関数で表された曲線の描画

2012年01月24日 | 裏 RjpWiki

陰関数のプロットについて のコメントはちょっと外れているような気がする。

ちょっと,裏技的であるが,3次元関数として計算し,任意の等高線を描くというようにすることができることもある。
f(x, y) = (x^2+y^2-2x)^3- 4(xy)^2 = c のグラフの例。

x <- seq(-0.5, 3, length = 1000)
y <- seq(-2.5, 2.5, length = 1000)
z <- matrix(0, 1000, 1000)
for (i in 1:1000) {
    for (j in 1:1000) {
        z[i, j] <- (x[i] ^ 2 + y[j] ^ 2 - 2 * x[i]) ^ 3 - 4 * x[i] ^ 2 * y[j] ^ 2
    }
}
contour(x, y, z, drawlabels = FALSE, levels = c(0, 1, 2, 5, 10, 20, 30, 50))

f(x, y) = x^2-xy+y^2 = c のグラフの例。

x <- seq(-3, 3, length = 1000)
y <- seq(-3, 3, length = 1000)
z <- matrix(0, 1000, 1000)
for (i in 1:1000) {
    for (j in 1:1000) {
        z[i, j] <- x[i] ^ 2 - x[i]*y[j] + y[j] ^ 2
    }
}
contour(x, y, z, drawlabels = FALSE, levels = c(0, 0.2, 0.5, 1:25))

コメント

横着するな

2011年06月02日 | 裏 RjpWiki

ロジスティック回帰の曲線のグラフを描きたい

うー? (2011-06-02 (木) 17:03:52)

ロジスティック回帰をしています。

量xと反応の割合pについて、glm関数でロジスティック回帰式を出しました。
xとpについてプロットを行い、この図に回帰曲線を加えたいと思います。

単回帰であればabline関数とlm関数を用いてコマンド一つで回帰直線を描くことができますが、ロジスティック回帰についてはそれが見当たりません。


いくつか本やウェブページを調べたのですが、独立変数を非常に細かくとってpredictとpointsで作図するとか、glmで求めた予測値についてlines関数で補間するなど、ちょっと回りくどい感じがします。


curve関数で書いてしまおうかとも思ったのですが、高水準作図関数なので実データとの作図の順番が逆になってしまいます。


何かいい方法はないでしょうか? 自分で関数を書く以外ないでしょうか?

 

curve だって,内部では seq.int なんか使っているんだから,同じでしょう。作図の順番が逆って,そんなの関係ないでしょう。できあがったものが,どんな順序で書かれたかなんか無関係。

要するに,少しの面倒もしたくないというわがままを言っているのか。

コメント

グラフの名前

2011年04月01日 | 裏 RjpWiki

このグラフの呼び名

K? (2011-04-01 (金) 03:58:55)

こちらの論文(PDF) の図4のようなグラフはなんと呼ぶのでしょうか? また、このグラフをRで作成するパッケージはありますでしょうか?
名前だけでも分かれば検索できるようになると思うので、どうぞよろしくお願いします。

聞く場所(相手)が違う。その文書を書いた人に聞けばすぐにわかることであろう。

それに,こんなところで聞いて回答を待っている間に,プログラムを書けばよい。

func <- function(x, factor=1, threshold=NA, color="gray")
{
    nr <- nrow(x)
    nc <- ncol(x)
    if (is.na(threshold)) threshold <- mean(x)+sd(x)
    threshold <- factor*sqrt(threshold)
    x <- factor*sqrt(x[nr:1,])
    theta <- seq(0, 2*pi, length=100)
    cos.x <- cos(theta)
    sin.y <- sin(theta)
    plot(c(0, nc+1), c(0, nr+1), type="n", axes=FALSE, xlab="", ylab="", asp=1)
    for (i in 1:nr) {
        segments(0, i, nc+1, i)
        for (j in 1:nc) {
            polygon(j+x[i, j]*cos.x, i+x[i, j]*sin.y, col=color[j], lwd=(x[i, j] > threshold)+1)
        }
    }
    text(0, 1:nr, labels=rownames(x), pos=2, xpd=TRUE)
    text(1:nc, nr+1, labels=colnames(x), pos=3, xpd=TRUE)
}
# test data
nc <- 12
nr <- 26
set.seed(123456789)
x <- matrix(sample(20, nr*nc, replace=TRUE), nr, nc)
color <- c("white", "gray", "white", "gray", "gray", "white", "gray", "gray", "white", "gray", "gray", "white")
colnames(x) <- letters[1:nc]
rownames(x) <- sapply(1:nr, function(i) paste(rep(LETTERS[i], sample(1:10, 1)), collapse=""))
# factor:円の大きさの縮小率,threshold:その値より大きければ太線で描く,color:色
func(x, factor=0.06, threshold=18, color=color)

 

コメント

ブランド志向はここまでくるか

2011年02月20日 | 裏 RjpWiki

> 依然としてよくわからないので間瀬先生にメールにて質問させていただいたところ、即座に親切なご回答をいただきましたので紹介しますと、”「正確に」答え られる概念ではありませんし、メイルで答えられるような簡単な話でもありません。マルコフ連鎖モンテカルロ(MCMC)法に関する文献を探してください。 詳しい議論があるでしょう。”

「正確に」答え られる概念ではありませんし、メイルで答えられるような簡単な話でもありません。マルコフ連鎖モンテカルロ(MCMC)法に関する文献を探してください。 詳しい議論があるでしょう。

というのは,それ以前に得られているコメントと内容的には同じだよね。

まあ,違う所をしいてあげれば,「質問者のプライドを傷つけない」というところかな。

質問者も,ナイーブになったものだ(念のため,ナイーブというのは,英語圏では負のイメージを持つのだよ)

 

 

コメント

馬鹿げた手続き

2011年01月30日 | 裏 RjpWiki
なぜにして,こんなばかげたことをせにゃならんのじゃ?わけがわからん。

GUIプリファレンスのフォントの設定の固定 †

ぐし? (2011-01-28 (金) 03:04:17)

いつもRを起動するとGUIプリファレンスのフォントの設定を変更しなければ日本語が表示されません.
起動と同時にMSgothicで表示させる方法はないのでしょうか?
使用OSはwin7で、Rは2.4.1です。

* え,目を疑う。「Rは2.4.1です」って,本当ですか。そんな古い奴は,追試できません。 -- 河童の屁は,河童にあらず,屁である。? 2011-01-28 (金) 07:06:38

* フォント設定を変更した後セーブしていますか? -- 2011-01-28 (金) 10:39:26

* 本当です。フォントを設定した後、保存を押しているのですがそうなりません。Rconsoleファイルをどうにかしないといけないのでしょうか?今はこれを作業フォルダにいれています。 -- ぐし? 2011-01-29 (土) 18:00:10

* アップデートして解決しました。お騒がせしました -- ぐし? 2011-01-29 (土) 18:37:45

* すみません、やっぱりできてませんでした。日本語表示はされるものの、MSgothicではなく、courier Newだったようです。 -- ぐし? 2011-01-29 (土) 22:42:06

* 変更したRconsoleファイルを作業ディレクトリでなくRをインストールしたフォルダにある「etc」フォルダに保存してみてください。 -- 2011-01-30 (日) 20:15:45
コメント

大場嘉門(その2)

2011年01月29日 | 裏 RjpWiki
以下も,しばらくたって消去された。
己のつたなさに気づいたのか,自尊心を傷つけられたと思ったのか。

**生産関数、費用関数、利潤関数の推計について [#xcaed6dd]
>[[ttt]] (2011-01-27 (木) 13:06:21)~
~
Rで計量経済をやりたいのですが、生産関数の推計を行うプログラミングがよくわかりません。~
検索してみたのですが見当たらないので詳しい方がおりましたら、教えていただけないでしょうか。よろしくお願いします。~

//
- どういう推計を行うのか詳細がわかりません。どのように検索したのかもわかりませんが,たとえば「生産関数 R」でググったら,「[[レオンチェフ型生産関数・R の繰り返し計算の基本:http://www.google.co.jp/url?sa=t&source=web&cd=1&ved=0CBgQFjAA&url=http%3A%2F%2Fwww3.u-toyama.ac.jp%2Ftulip%2Fws%2Fws13osaka2.pdf&ei=6fBATdumOJGavgPftZnqAg&usg=AFQjCNF3Vntq5PytKlytvQjZaJiH1kqVCQ&sig2=FyXJxCVE9B4lvV51vOs8gA]]」などというPDFファイルが見つかったりします。素人ながらその文書を見ると,あまりたいしたこともやらないようなので,わざわざそのためのパッケージが開発されていないのかなあとか思います。
「R で計量経済をやりたい」とはいっても,R 自体がわかること,計量経済(のやりたいこと)がわかることの2つが必要で,さらにそれをあわせることが必要です。計量経済がわかっているならば,R はそれをコンピュータ上でやるだけの話です。R でなくても,STATA でも Java でも,自分の好きなモノを使えばよいだけのことです。 -- [[河童の屁は,河童にあらず,屁である。]] &new{2011-01-27 (木) 13:18:02};

- 稚拙な質問にも関わらず、丁寧に回答して頂きありがとうございます。具体的には、偏微分を含む式をどのように入力すればいいのかがわかりません。微分と同じ形式で良いのでしょうか? -- [[ttt]] &new{2011-01-27 (木) 17:31:04};

- > 具体的には、偏微分を含む式をどのように入力すればいいのかがわかりません。微分と同じ形式で良いのでしょうか?
ちっとも具体的でないから,コメントが付かないのでは?
どのような問題を解くために,どのような偏微分式を入力しようとしているのか? -- [[河童の屁は,河童にあらず,屁である。]] &new{2011-01-27 (木) 22:04:12};
コメント

久しぶりの大場嘉門

2011年01月27日 | 裏 RjpWiki
**データフレームの文字列部分を変更したい [#xda3d346]
>[[tadashi]] (2011-01-26 (水) 18:09:28)

数値なら簡単に変更できるのですが、文字列は下記のようになります。
どうすると変更できるのでしょうか?
http://www.okada.jp.org/RWiki/?%BD%E9%B5%E9%A3%D1%A1%F5%A3%C1%20%A5%A2%A1%BC%A5%AB%A5%A4%A5%D6%282%29


などと,手抜きの質問をし,いろいろたしなめれれても,対応することもなく,質問を消去してしまった。
大馬鹿者だ。答えを知りたくないなら,質問するな!!
コメント

処理に適したデータ構造を

2010年09月08日 | 裏 RjpWiki
いくら,例だからと言って,こんな汚い例はない方がよい。

> hoge1 <- 1; hoge2 <- 2; hoge3 <- 3; hoge4 <- 4
> N <- 4
> X <- vector("list",N)
> for (i in 1:N) X[[i]] <- eval(parse(text=paste("hoge",i,sep="")))
> str(X)
List of 4
 $ : num 1
 $ : num 2
 $ : num 3
 $ : num 4
> foo <- function(x) x^2
> Y <- lapply(X,foo)
> str(Y)
List of 4
 $ : num 1
 $ : num 4
 $ : num 9
 $ : num 16
> Y[[1]];Y[[2]];Y[[3]];Y[[4]]
[1] 1
[1] 4
[1] 9
[1] 16


X はベクトルでよいし,結果も lapply でなく sapply でベクトルに付値するべし

hoge1 <- 1; hoge2 <- 2; hoge3 <- 3; hoge4 <- 4
N <- 4
for (i in 1:N) X[i] <- eval(parse(text=paste("hoge",i,sep="")))
foo <- function(x) x^2
(Y <- sapply(X,foo))
コメント

ちょこちょこ修正するのは,やめてくんない?

2010年07月24日 | 裏 RjpWiki
相も変わらず,殆どの人には関心のないことをちょこちょこ,ちびちび修正して,「最終更新」のリストの上にあげる。うっとうしい。

それに,[[JGR:JGRで日本語]]なんてのは「有効なInterWikiNameではありません」とか,http://www..com/R-on-Google-Android-td25842298.html になっているので,「www..com という名前のサーバが見つかりませんでした。」になるなり。Wiki の記述ルールも知らない籐史郎さんが弄ってるんだなぁ。

修正してもよいけど,せめて「タイムスタンプを変更しない」にクリックしてクリや。

--------------------

R running on mobile gadgets
  :
*Adnroid OS [#y5cc01a9]
*Android OS [#y5cc01a9]
**Android [#oc6431e9]
-Android NDK 1.5 で、jni を使って、[[JGR:JGRで日本語]]のようなものが可能になるか?
--[[R on Google Android:http://www.nabble.com/R-on-Google-Android-td25842298.html]]
--[[R on Google Android:http://www..com/R-on-Google-Android-td25842298.html]]
コメント

暗黙のprintが効かない場合

2010年07月16日 | 裏 RjpWiki
> 回帰分析のsummaryの保存 (2008-02-07 (木) 16:47:36
> Rで回帰分析のスクリプトを書いて実行しています。
> スクリプト中

> sink(file="summary.txt")

> summary(kaiki)
> sink()
> としているのですが、summary.txtには何も保存されていません(空っぽのファイルはできる)。コンソール上で1行ずつ入力すると保存できます が、スクリプトで~ 一気に保存できる方法はありますか?~ よろしくお願いします。


速攻でコメントが付いている
明示的に print 関数を使う必要があるということ
投稿規程を知らないという,きまま質問の典型
コメント

これだけで,ほかの人に伝わると思っているんだろうか

2010年07月15日 | 裏 RjpWiki
SensomineRの分散分析でのエラー †

Sensory? (2010-07-15 (木) 19:17:26)

お世話になります.Rも、プログラミングも完全に初心者です.よろしくお願い致します.

分散分析を行うと出現するエラーについてです.R,Rcommander,SensomineRを使っています.SensomineRよりpanel performance(分散分析)を起動させた場合,Product35×Panelist5×descriptor9ではエラーは出現しないのですが,Product31×Panelist5×descriptor9では,"置き換えるべき項目数が,置き換える数の倍数ではありませんでした”というエラーが出現します.

何か解決策があれば教えて頂けないでしょうか.よろしくお願い致します.


具体的なことがなんにもわかりませんなあ。
コメント