1 :
132人目の素数さん :
2008/10/16(木) 16:33:16 R は統計解析とグラフィックスのためのフリーソフトです。 統計計算で重宝するデータ型や、複数要素を処理する演算や関数、 解析結果を表示するグラフィックなど、多彩な機能を提供します。
|: : : : : : : :,イ /'7 /: : : : : : :/ \ \ |: : : : : :/: { ゝ::/ 7: : : : / \ ヽ |:__; ;- ´: : : ` ´: :`:´○::/ ', ヽ , 'ヽ: : : : : : : : : : : : : :.iイ i |ヽ __| i i, ',`、 3げっと ` - : :_:_:_:_: : イ」_|_|, ト,イ´, || | | .| ,ヽ / |'/´|V,,ゝト, イ レ }ノ |.| i|i , \ / | { O::::`, ヽノ /⌒'7 ノイ) , \ (⌒ヽ/ / \ |ヽヾニソ , // レ i\ \ _,,,--,,,_ `{ニ;(´\ | ヽト. _ノ ノ| / | | ` ー| \ /{_フ7 } | | > ,,__,, < / / | | `´⌒ヽ ヽ /´ ヽ フ ノ | |'\_:_::ゝ/´: : :V / | || | } } 7i二二it ナ\| [:ニ[|\-'-// / /'| ,| く´⌒`ー ノ | | | ロ ヽ /:/ |;ト′ | ̄''ヽ/__./ |/ r ヽヽ_, ‐-‐‐´ | | ー-ッ--く∠__|:》___ ー´ 〈〈`i ...:::ヽノ | i| / ´ [二>,,,○|...::::'''' /: :ー ´:ヽ {: :[ニ/ヽ:::'''、 /: : : : : : / ̄`ー ___ノ/ /: : :\
ちんこ乙
5 :
132人目の素数さん :2008/10/17(金) 22:13:51
すみません質問です。最近Rを使い始めました。 今、 unko0.dat unko1.dat unko2.dat ...という風な名前のファイルが大量にありそれらに似たような処理をRでしたいとします。 そのため、以下のような関数を作りたいです。 operation <- function(n){ dataframe <- read.table("unko$n.dat") #データフレームにやりたい処理を書く } ここで"unko$n.dat"のように文字列の中で変数を展開させたいのですが そのようなことは可能でしょうか?よろしくお願いいたします。
事故解決しました。 str <- paste("unko",n,".dat",sep="") でできました。スレ汚しスマソ。
7 :
132人目の素数さん :2008/10/19(日) 01:25:33
最近Rを使い始めたのですが質問があります。 パッケージの中身のソースはどうやってみるのでしょうか。
>>7 そのパッケージのソースをCRANからダウンロードして中をみる以外の方法を聞いているの?
9 :
132人目の素数さん :2008/10/23(木) 23:18:23
初めてRを使うものです。 2000×2500のdata.frameの内容をファイルに出すのですが、 時間がかかってしかたありません。 いちいち、sprintfで文字列にして、catで出力するのですが、何か良い方法があればとおもい、 ヒント頂ければと思ってます。 sprintfのフォーマットは"%12.6f". 500万件の出力には、時間必要でしょうかね。 もちろん、ファイルはオープン&クロースの手順を踏んで、 一つ一つはIO発生させないようにしてるんですが… テキストファイルへの出力のヒント、頂ければと思います。
>>9 write()でパイプ経由でawkとかperlに渡す場合とどっちが速い?
Rを勉強しようと思って本でも買ってみようかと 思ってるんだが、やっぱRのプログラミングコードとかが たくさん書いてある本のほうが良いかな。 それとも統計学とRの両方について詳しく説明してる本のほうが良い?
何がしたいかによるんだから、具体的に書かないとレス貰えないよ。 コーディング経験の有無、統計に関する知識、その辺がすっぽり抜けとる。
13 :
132人目の素数さん :2008/10/29(水) 21:34:29
macでRを使ってるんですが、 グラフィックボードに日本語を出力しようとしても 全部四角になってしまいます。 解決方法ご存知の方がいらっしゃったら教えてください。
>>11 基礎的なことはネットで資料を探す。
そうすると、Rの基礎みたいな本はほとんどいらないことがわかる。
というかRの使い方という感じで売ってる本だとRのマニュアルのコピー
みたいなので終わってるのが多い。
その上で、Rの使い方&統計処理のつながりで、お気に入りをあげておくと
「Rによる医療統計学」丸善株式会社
内容は医療統計ではない。タイトルで損をしてるかもしれないが、
このタイトルだから買う人もいるかな。
内容的には、Rの使い方と分析方法がバランスよく書いてあり、使いやすい本。
Rの使い方、確率とか記述統計の話があった後に、1標本、2標本の検定、
分散分析、単・重回帰、ロジスティックモデル、生存分析が載ってる。
「RとS-PLUSによる多変量解析」シュプリンガー
いろいろな分析手法について、Rでどうやればいいかをメインに書いてある。
理論的な話はコラム扱いになっているので、そこは飛ばして読むことも可能。
主成分分析、因子分析、対応分析、クラスター分析、分散分析、重回帰・正準
相関分析、反復測定データの分析(パネルのランダムモデル)、あとはRの
使い方の備忘録がまとめてある。
「統計学:Rを用いた入門書」共立出版
これは現在目を通している所だけど、統計学の基礎をRで経験的に学ぶには
いい本かな。Rの使い方の理解にもいいでしょう。
ブートストラップなどの方法が載ってるのがPCを前提するといいかな。
>>13 Tigar+R 2.7.2だけど別に普通にquartzに日本語が表示されるよ
RってExcelファイルとかのデータ取り込む手順がメンドイから嫌だ。
18 :
132人目の素数さん :2008/11/20(木) 02:03:05
plot()とかでx軸の目盛りを0,pi/2,pi,3pi/2,2piみたいにできますか?
RcppTemplate にCからRを呼ぶ例がみつからないのだけど どこかにないのでしょうか
>>18 できる
>>19 R以外の何かはそんなにデータを取り込む手順が面倒でないの?
21 :
18 :2008/11/21(金) 05:57:35
どうやって?
22 :
18 :2008/11/21(金) 05:58:27
>>22 そんなの自分で調べろ。
> x <- (1:10)/5*pi; plot(x,sin(x),type='o',axes=FALSE); axis(1,c(0,pi/2,pi,3*pi/2,2*pi),c('0','pi/2','pi','3pi/2','2pi'))
>>17 Rcmdrパッケージを導入。
RcommanderからだとGUIでエクセルをファイルを選べる。
RODBCとかread.xls(file.choose())とかが出てきていない件
うるさい。
scale関数の結果はただのmatrixクラスですか? 末尾にあるattr情報はなんなんでしょうか?? > scale(c(1,2,3,4,5)) [,1] [1,] -1.2649111 [2,] -0.6324555 [3,] 0.0000000 [4,] 0.6324555 [5,] 1.2649111 attr(,"scaled:center") [1] 3 attr(,"scaled:scale") [1] 1.581139
28 :
132人目の素数さん :2008/11/30(日) 01:56:08
以前にもこんな質問があったような気がしますが、 過去ログが見られないので質問します。 文字列”123,456,789.123”を数値に変換するにはどうすれば良いのでしょうか? as.doubleではエラーとなりました。
>>28 専用の関数があった気がするけど、探すよりもカンマを取って変換する方がはやいかも
> a <- "123,456,789.123"
> a
[1] "123,456,789.123"
> b <- as.numeric(gsub(',','',a))
> b
[1] 123456789
> options(digits=12)
> b
[1] 123456789.123
OpenOffice Calc のファイルを直接読み込んむことは 出来ないのでしょうか? Excel 使わずに、 Calc で済ましているので、 CSVファイルに変換して読み込ませています。
31 :
132人目の素数さん :2008/12/07(日) 22:41:33
Rエディタのフォント(フォアグランド・バックグランド)を設定するにはどうすればいいのでしょうか?
33 :
132人目の素数さん :2008/12/08(月) 23:20:19
edit(x) で出てくるエディタです。
>>33 edit()って環境変数で指定しているエディタが起動するんじゃなかったっけ?
試しに、今やったら、Emacsが起動した。別のマシンでやったらviだった。
Emacsの色を変えたいなら、手っ取り早いのがcolor-theme。
36 :
132人目の素数さん :2008/12/10(水) 20:36:05
Rって表形式じゃないから凄く見にくいんですけど 統計に向いてないのでは?
>>36 逆だと思う。2次元にこだわるのは集計向きだけど、統計向きじゃない。
深い階層構造をもつデータや3次元以上の配列データをどうやって表にするの?
38 :
132人目の素数さん :2008/12/11(木) 21:47:43
こんな過疎スレで煽りレス入れて楽しい?
40 :
132人目の素数さん :2008/12/12(金) 19:59:01
>>39 あおりではないよ。
統計をやる上では、2次元以上のデータを扱わないといけないのが普通。
だから、2次元でないと使いづらいと感じるならば統計処理がわかってない。
それなのに、Rの仕様の方に文句つけるってことは、
>>36 が統計に向いてない
ってこと。
なので、
>>36 は自分を反省したほうがいいよって内容のコメントです。
あ、
>>39 が煽りだったか、反応しちゃった。w
Rユーザの層が拡大するにつれ、
>>40 のようなユーザも出現するようになったのだなと
しみじみ時の流れを感じる今日この頃。
42 :
132人目の素数さん :2008/12/13(土) 11:54:59
>>41 RjpWikiをみると、昔から使ってる人のほうが態度が悪いのが多いと思うが。
昔はよかったってのは嘘じゃないかな?
「昔はよかった」 とはいつの時代も言われること
>>42 Rjpwikiの始発メンバーであんな回答態度をする人はいなかったけど。
途中参加でとっても辛口な先生1名だけいたけど、全体的にはとっても
雰囲気がよかった。最近の回答態度は酷すぎる。
同感。 「俺達は金もらって仕事で答えてるんじゃない」という意識が強すぎるし、 質問者に対して「学術的態度で臨むこと」を求めすぎ。 ゼミで教授が学部学生をこき下ろすみたいな調子だもんね。 あそこは学者という人種に共通してありがちな人間的欠陥が よく観察できるコミュニティだと思う。その点では興味深い。 R自体はとてもいいソフトだと思うけど、あの集団には近寄れない。 結果として自分1人、孤立無援で使うしかない人が大勢生まれてるはず。
46 :
44 :2008/12/14(日) 23:16:21
私も大学教員の端くれだけど、「あの集団」の中の人かも知れないけど、 人がそれぞれ違うように学者もそれぞれ違うということを理解して欲し い。それから、今のRjpwikiのノリは、技術系コミュニティに普遍的に見 られるノリをそのまま持ち込んでいるのであって、学者や学術とは関係 がないと思う。むしろ、プロのプログラマがボランティアのコミュニティ に回答をお願いする態度を求められるような。 「技術系メーリングリスト」で検索すれば、私の言わんとしているとこ ろが理解してもらえるかもしれない。
今は見ていないけど。 10年ぐらい前のニュースグループ fj の Java で、学者の罵りあいをはじめて見た。 煽(あお)り、嘲(あざけり)りが、しょっちゅうあったよ。 精神年齢が低いのか、世間と接する機会がないのか、異常な空間だった。 気持ち悪いから、次第に見なくなった。
48 :
132人目の素数さん :2008/12/15(月) 02:48:58
流れをぶったぎってすみませんがpersp()で作った図には目盛をいれられないのでしょうか?いろいろ検索して見たのですが目盛が入った図形を見かけません。
>>48 demo(persp)
2ばんめのやつ目盛り入ってるけど
50 :
48 :2008/12/16(火) 08:21:58
>>49 ほんとだ。ググってばっかでdemo見てなかった
ありがとうございます
51 :
132人目の素数さん :2008/12/25(木) 16:28:17
初心者です。 ランダムに一つの値を返す関数f()を使って、 n個のf()の要素を持ったベクトルを生成したいんですが どうやってやればいいんでしょうか? 例えばrunif(1)を使って、 n個のrunif(1)を要素に持ったベクトルを作りたいんです。 (この場合はrunif(n)とすれば同じことなんですが。) runifの定義を見たかったんですがうまく見れなかったんで・・・、 質問がわかりにくくてすいません
>>51 for文で繰り返してf()を呼ぶんじゃあだめなわけ?
53 :
132人目の素数さん :2008/12/25(木) 21:11:17
>>51 >>52 さんの説明に追加しておくと、後ろにn回足していけば要素nのベクトルになるからね。
質問の意味がよく分かってないんだけど、素直に f(n) が長さnの配列を返すように 改変した方が早い気がするし、後々便利だと思うのだが…
>>51 こういうこと?
> n <- 100
> sapply(1:n,function(x){runif(1)})
[1] 0.818340010 0.651594423 0.127955778 0.171274880 0.563699459 0.384024996 0.029357331 0.016647415
[9] 0.101343935 0.133003978 0.747144830 0.744196239 0.003289461 0.959092745 0.629223455 0.383857910
[17] 0.037938089 0.006460069 0.773271457 0.150311993 0.196387192 0.836505357 0.412903159 0.095657646
[25] 0.553321234 0.236131052 0.497607133 0.593558011 0.467087544 0.579318360 0.809348525 0.286566273
[33] 0.023595126 0.898196327 0.829228607 0.051619953 0.442055013 0.116213767 0.310974789 0.256060483
[41] 0.046852290 0.139351573 0.945665213 0.977257256 0.320223742 0.892197528 0.051279639 0.224508460
[49] 0.634450256 0.776448613 0.048133771 0.008337753 0.330989671 0.897959799 0.160857094 0.760585248
[57] 0.570918484 0.606187105 0.284859592 0.779051957 0.005772743 0.434992523 0.847252370 0.102974025
[65] 0.977090385 0.820228452 0.456311142 0.405863907 0.626831524 0.559654842 0.301375986 0.118507505
[73] 0.420883286 0.217497744 0.951507267 0.539087156 0.572545737 0.401707581 0.037067011 0.820561413
[81] 0.796349923 0.014069674 0.416268822 0.466225379 0.514395235 0.907431938 0.528704567 0.993907087
[89] 0.518415753 0.076568432 0.716981598 0.427751862 0.571849909 0.692945911 0.214970149 0.687965385
[97] 0.634484604 0.064504115 0.484531934 0.719008875
56 :
51 :2008/12/26(金) 16:54:57
返事遅れてすいません。
レスどうもですm(_ _ m)
>>52 最初for文でやろうとしたんですがうまくできなかったんです。
n<-100
x<-for(i in n) runif(1)
x
としてもベクトルになってもらえなかったので。
>>53 足す、とはどうすればいいんでしょうか・・・?
>>54 本当はそういう風にrunif(1)から自分でrunif(n)みたいなのを作りたかったんですが
ベクトルを返り値にするには関数をどう定義すればいいのかわからなくて。
>>55 おおーこんな感じです!
んーsapplyでできるんですね。わかりませんでした。
ありがとうございます!
>>56 あなたのやってるのは、xを上書きしてるので、ベクトルにならないの。
足すってのは、ベクトルを後ろにのばしていけってことね。
ということでベクトルの追加の仕方をわかってないようなので、
すごく格好悪く書くと
x <- runif(1)
for (i in 1:9) x <- c(x,runif(1))
最初ので、xに値をいれ、次に、その後ろに値を9個追加してる。
大切なのは、x自体に値を加えたものをxに入れることで、ベクトルを
のばしてるってこと。
58 :
51 :2008/12/27(土) 01:36:07
>>57 あ、なるほど、cで繋げばよかったんですね。
ただ、sapplyに比べてかなり効率悪いみたいです・・・(_ _ ;)
自分はかなり大きいデータを扱おうとしてたので
もともとforだと無理だったかもしれません
SEMのパッケージで構造方程式モデリングやってる面白い論文ありますか? 勉強半分遊び半分でいじってるんですけどうまく動作しなくて・・・
Rの使い方に慣れる為にテキスト片手に勉強しているのですが、 乱数で生成したデータでクラスタ分析等をしても実感がわきません。 そこで、実際の実験や調査で得られたデータを使ってみたいのですが、 そういうものはどこかで手に入るものなのでしょうか? (Rに付属してたりしないんですかね)
>>61 R には有名な Fisher の iris データが付属しています。
あと、省庁が Web で公開している統計データ(都道府県別○○データとか)にも面白いものがあると思います。
63 :
61 :2009/01/08(木) 21:31:59
さっそくありがとうございました。 data(iris)で呼び出せるとは知りませんでした。 農水省やら環境省を覗いてみましたが統計データがいっぱいありました。 いろいろいじってみようと思います。
はじめまして。例えば2007/10から2008/9のデータが以下のようにあるとして、 10 0.5 11 0.4 12 0.3 1 0.4 2 0.5 3 0.6 4 0.7 5 0.8 6 0.9 7 0.8 8 0.7 9 0.6 (最初のカラムは年月日の月) っていうのから折れ線グラフや散布図を作りたいんだけど、 簡単にRcmdrでやってみたら月がソートされてしまう。 データ順通り表示するにはどうしたらいいの? なお、Rcmdrにはこだわってはいません。
>>64 値の方は適当にしたよ。
> Oct07 <- as.Date("2007-10-1")
> time <- seq(Oct07, len=12, by="1 month")
> df.data <- data.frame(time = time, value = rpois(12, 3))
> plot(df.data$time, df.data$value, type="l")
66 :
132人目の素数さん :2009/01/22(木) 16:27:46
age
67 :
132人目の素数さん :2009/01/30(金) 00:42:42
統計フリーソフトとして、 RとWekaのどちらを学べばよいか迷っています。 どのような違いがあるのでしょうか?
68 :
132人目の素数さん :2009/01/30(金) 15:12:54
Rはほぼ初心者なんですけど・・・ A [,1] 1 2 3 4 [,1] [,2] 4 8 2 9 1 0 3 7 というAとBのデータの1列目の一致させて結合したいのですけど、 どうしたらいいでしょうか? 教えてください。
Aの並びは任意?それも昇順? > B <- cbind(c(4,2,1,3),c(8,9,0,7)) > B[c(1,2,3,4),] [,1] [,2] [1,] 4 8 [2,] 2 9 [3,] 1 0 [4,] 3 7 > B[order(B[,1]),] [,1] [,2] [1,] 1 0 [2,] 2 9 [3,] 3 7 [4,] 4 8
>>67 Weka は触ったこともないのだけど、データマイニングに特化しているイメージがある。
R なら、とりあえずなんでもできる。はず。
データマイニングしかしない、というのでなければ、R がいいのでは。
>68 ヒント merge
72 :
132人目の素数さん :2009/01/31(土) 18:24:05
>>69 >>71 お答えいただきありがとうございます。
きっとmergeを使う方法がいいのだと思います。
それで一度やってみます。
73 :
132人目の素数さん :2009/02/01(日) 01:15:41
なんどもすいません。 merge関数を使う場合に・・・ >merge(data1,data2,all=TRUE,by.x=1,by.y=2) という風にいれるとおもうんですが、 by.x=やby.y= には何を意味しているのですか?
help(merge)
75 :
132人目の素数さん :2009/02/05(木) 02:08:45
初心者です 単語の総数が違う二つのコーパスで that の出現頻度に 有意な差があるか調べたいんです 頻度(割合)を出したんですがこのあとどのような検定をすればよいのでしょうか? 値一つでは検定ができないですよね。
77 :
132人目の素数さん :2009/02/05(木) 11:08:08
>>76 回答ありがとうございます。chisq.test()について調べました。
今回の例の場合、引数には2行2列の行列を採用すればよいのでしょうか?
質問ばかりですみません
78 :
132人目の素数さん :2009/02/05(木) 14:19:54
Rを他の人が使いやすいように完全GUIから入力したいのです。 現在Rコマンダーというのがありますが半GUIという感じです。 可能でしょうか? 可能なら参考になるものがあれば教えてください
>>77 四分割表が好みなら、それでいいよ。
> a <- matrix(c(20,55,11,43),ncol=2)
> colnames(a) <- LETTERS[1:2]
> row.names(a) <- c("that","others")
> a
A B
that 20 11
others 55 43
>>78 むしろ、S-plus
80 :
132人目の素数さん :2009/02/05(木) 15:22:46
>>79 本当にありがとうございます
独学なモノでなかなかわからないんですよね
参考にしてがんばります
81 :
132人目の素数さん :2009/02/06(金) 17:39:17
78です。 S-plusとか初めから揃っているのではなく、 自分でGUIを設計したいのです。 Rのソースを例えばdll化してVBから読み込むとかは可能でしょうか?
82 :
132人目の素数さん :2009/02/07(土) 00:06:06
S-PLUSは両方できるよ それよりも、それを責任もってずっとサポートする ことを考えたら、他のツールも考えていいのでは、 人件費が一番高いことを考えないといけない。
83 :
132人目の素数さん :2009/02/07(土) 03:23:55
>>82 一生の仕事にするので大丈夫です。
あと、どうしても市販のソフトは現場の方には難しいです。
目的でボタンを選んでいけば結果が出る(統計は裏でやっている)ようなものを作りたいんです。
ExcelからRを使えることもわかりました。試作を作ってみたいと思います。
なんだろうこの子供は。 SPSSで良いじゃないか。
85 :
132人目の素数さん :2009/02/09(月) 08:49:39
SPSSは統計をわかっている人向け。 現場の人は回帰分析が何に使えるのかさえ知らない。現場を知らなさすぎるよ。
強者が妬まれるのはこの世の常
>>83 >目的でボタンを選んでいけば結果が出る(統計は裏でやっている)ようなものを作りたいんです。
ボタンを選んでいくとRのコードを出力するようなものを目指すといいと思う。
そうすれば、教育目的にも使えそう。
あと、ど素人に使えるようにするには、データを解析にかけられるレベルに整形する機能
(データのマージ、欠測値の置き換え、変数変換、欠測値を含む個体の除外など)
を持たせる必要があるのでは?大変だと思う。
教育は目的ではないだろ。w HTMLからRを呼んで結果をWindowに表示するものを作ったことがあるけど、 Rの結果をそのまま貼ったのでは現場ではよろしくないだろう。 出力整形の方が手間がかかると思う。
>>87 >ボタンを選んでいくとRのコードを出力するようなものを目指すといいと思う。
現場の方はRとかには興味ないんです。
興味があるのは結局どうすれば改善するの?答えを教えて!
ということだけなので、Rのコードすら見せないつもりです。
最終結果のみ出力ですね。
(当然、必要な人のために計算手順、考え方を示したレポートも出力しようとは思っています)
欠損値を含むデータは一式除去します。
(補完は事実ではないので使いたくないしデータは多数あるので)
正規性検定で正規性チェックして
(当然メッセージボックスには正規性チェックOKとか処理の意味を記載する)
当然多変量散布図も表示。
(→何をポイントとして見ればよいのかも素人にわかりやすく示す予定)
変数変換はBox-Cox変換でします。(あてはめすぎには注意したいですが。。。)
で(線形)重回帰分析を解く
というところまではVBAで作っていたので。
今後、他の手法もRで手に入るならば後は全体の分析手順を考えるだけだなと思いまして。
Rの本も購入したのでゆっくりやってみます。
90 :
132人目の素数さん :2009/02/09(月) 23:16:15
そのような(ほとんど同じ)ことを事を考える人多いね。 数人ではなく、何十人聞いたことか。 成功させるためには、商売にしてしまうという 考えをしたほうが良いのかもしれない。
流れ切って悪いが質問 シーケンスなデータがベクトルに入ってるとして、 その極大(小)値を求めることってできる?
>>90 商売??
もともと社内でそういう仕事やってるので。。。
93 :
132人目の素数さん :2009/02/09(月) 23:40:00
外販が商売なの?
94 :
132人目の素数さん :2009/02/09(月) 23:42:02
だとすれば、可能性有るかもしれない。 それを考える人は結構すくなくて、 社内利用を目的とする人がおおくて それだと、いつの間にか消えていくもので。
>>89 >Rのコードすら見せないつもりです。
R のコードを見せるかどうかは問題ではなく、どうすれば(あなたが)楽をできるか、を考えたつもり。
作成段階でのデバッグとか、保守(不具合が発生した時の対応)とか。
もちろん、ユーザーには解析結果だけ見せればいいだろうけど、R はめちゃくちゃ強力なので、
解析結果の表示の寸前まで R にやらせればいいと思う。
>興味があるのは結局どうすれば改善するの?答えを教えて!
工場の品質管理?
>変数変換はBox-Cox変換でします。(あてはめすぎには注意したいですが。。。)
なんてダーティーな…。
(試行錯誤がある程度許される)品質改善に使うなら、そういうのもありなのかな。
製薬畑で、対数変換しか使ったことがないからよくわからない…。
>>90 >>91 システムとして他の企業に売ったりするつもりが無いなら、オープンソースでもいいかと。
企業内の統計専門家なら実験計画・解析計画と結果の解釈で飯を食えるはずだし。
>>95 自分の楽を考えていては改革は進まないのです。
楽する人には誰も信頼してついてきてくれません。
現場がいかに楽して成果をだせるか、
統計専門家は一段降りて素人と対話することが重要なんです。
わからない専門用語を並べても相手には伝わらないんです。
統計はあくまで手段にすぎないのです。
統計がなくても目的が達成できれば、統計すらいらないのです。
統計を使うことが目的ではなく、現場をよくすることが目的だからです。
本来は現場の方が自主的に統計を学べばよいのですが、現場は現在の仕事で手一杯状態。
そこを補佐するのが私の任務です。
あと、わかっているとは思いますが、
Box-Cox変換の中には対数変換も含まれていますよ。
変換は、平方根変換、対数変換が主でしょうが、
プログラム内ではBox-Cox使う方が値を変更するだけなのでコード記載が楽なのです。
モジュール一つで済みますから。
>飯を食えるはずだし。
飯を食えるとか発想が保守的すぎる。
現場が望むものなら不況であれ何であれやろうってなりますよ。
改革派の俺にはわからん考え方ですな。。。
若いな…。
それを「業務」としてやっているなら
>>95 のいうように飯をくっていることに変わりはない。
まあどんなに簡単に使えるツールを作っても業務が改善されなければ現場からは
役に立たないと言われるだろう。難しいぞ。
98 :
132人目の素数さん :2009/02/10(火) 01:21:41
難しいから仕事なのです。 自分しかできないから存在価値があるのです。 誰でもできることばかりやっていては いきなり首を切られても文句は言えません。
99 :
132人目の素数さん :2009/02/10(火) 01:28:46
目的が『飯をくうために』。結果『飯をくっている』 で考え方は違うし、行動に差がでるよ。 前者は、飯をくうために、できる限り楽して金をかせぐことを考えてしまう。 後者は、目的を達成することに全勢力を注ぎ込む。結果的に周りからも認められ金を得られる。
流れ切って悪いが質問 シーケンスなデータがベクトルに入ってるとして、 その極大(小)値を求めることってできる?
min(), max() って話ではないのか???
>>83 応援だけする(笑。ただ、そういうものなら裏でR走らせるよりも、
自分でコードした方が楽かもしれない、とも思う。
102 :
100 :2009/02/10(火) 12:20:16
>>101 いや、極値を全部取り出したかったんだが
まぁ自分で実装するか
RgtkやR-Tcl/Tkが用意されているんだから、GUIインターフェイスはいかようにも作成できるし、HTMLやWebアプリにしたければ、 Rpadがすでに用意されているんだから、車輪の再発明はいらないと思う。
>>102 あ、ごめん、勝手に最大最小に置き換わってたw
105 :
132人目の素数さん :2009/02/10(火) 19:20:18
やっぱり若いな。 手段が目的化するのは普通のことだし、そもそも業務ならこんなところで 質問してないで仕事しろって感じ。w
>>96 >楽する人には誰も信頼してついてきてくれません。
楽をしろ、というのは、性能・品質を妥協しろ、とか、素人にわかりにくい出力をそのまま出せ、という意味ではない。
同じ動作をするシステムを作るなら、なるべく楽をして作るべき(無駄に苦労するのは社会人として失格)だ、ということ。
そのための方策として、結果出力の寸前までを(他の言語に投げずに) R に任せることを勧めている。
あと、デバッグ・保守を楽にできないのだとしたら、それは稼働率も信頼性も低いダメなシステムを作ったということ。
プログラミングに限っていうと、一般に楽につくったシステムはデバッグ・保守も楽な「良い」システムになるから、一石二鳥。
>>98 >誰でもできることばかりやっていては
>いきなり首を切られても文句は言えません。
あなたは別の理由で職を失う心配をした方がいいかも。主張がちょっぴりうつ病患者っぽいよ。
109 :
132人目の素数さん :2009/02/11(水) 01:33:44
鬱の患者が多い駄目会社で常人扱いされるあながが一番よくわかる症状らしい。 通常ならなにもやらないやつが切られるのにな(笑) ぼく、仕事はお遊びじゃないんだよ。
110 :
132人目の素数さん :2009/02/11(水) 01:36:15
111 :
132人目の素数さん :2009/02/11(水) 02:00:01
>>108 詭弁。口がうまいというか世渡り上手というか。
自分が不利にならないように話の解釈を変えている。
口がうまい分実力がなくても大丈夫。
実力者についてわたり歩けばいいんだから。
口がうまい人なりの仕事の仕方はある。
否定はしない。
112 :
132人目の素数さん :2009/02/11(水) 11:28:32
完全に子供だろ。社会人1年目か2年目の。
113 :
132人目の素数さん :2009/02/11(水) 13:15:02
私の会社にはこれだけ意思のある人はいないな。 誰も動こうとしないから楽なことは楽だが会社が潰れないか心配だ。
俺らは何かを忘れているのかもしれない。 衰退に気づかない『ゆでかえる』かもしれない。 俺には恥ずかしながら現状を具体策をもって行動できるパワーはない。 だからその課題解決力が羨ましく思う。 反対するやつは必ずいる。負けずに行動してほしい。
どこにでも行動できない何したらよいかわからない ただ違うことはわかるという評論家のようなやつはいる。 違うことすらわからず、 人の性格、年齢等まったく異なる話にもっていき攻める幼稚なやつさえいる。 子供か大人かは話の論点がそもそも違う。 会社に利益をもたらすかどうかが重要。 優秀さとは、自分のアタマで考えることができ、行動できる人だと思う。 がんばってほしいと思う。
116 :
132人目の素数さん :2009/02/11(水) 16:13:54
夢だけ見てるあほだろ。 統計も統計ツールも現場も知らないお子様。 恥ずかしい限り。 > Rを他の人が使いやすいように完全GUIから入力したいのです。 > 現在Rコマンダーというのがありますが半GUIという感じです > 目的でボタンを選んでいけば結果が出る(統計は裏でやっている)ようなものを作りたいんです。。 >SPSSは統計をわかっている人向け。 >現場の人は回帰分析が何に使えるのかさえ知らない。現場を知らなさすぎるよ。
知識は後からつけられるが、意識の高さ、考え方は後からつけるのは難しいからな。
あと
>>116 具体策何か提示しないと
お子様にも負けていることを自分で言っているようなものだと思う。
118 :
132人目の素数さん :2009/02/11(水) 16:38:01
>>117 いや、
>>116 も夢と表現しているところからすると
内心はお子様の目指している方向の正しさを認めているようだ。
しかし、実現させたいが自分にはできないといったところじゃないか。
素直にはなれない頑固さというところか。
119 :
132人目の素数さん :2009/02/11(水) 16:59:32
自分のアタマで考えることができ、行動できる人
120 :
132人目の素数さん :2009/02/11(水) 17:05:52
俺は
>>116 じゃないけど、無理な方向だとは思うよ。
統計をわかってないと、そもそも「目的でボタンを選んで」ができない。w
「現場の人は回帰分析が何に使えるのかさえ知らない」のなら、そんな人が
回帰分析をしてはいけない。
ある程度の不便さは、使う側を選別するために必要だと思う。
統計解析あ〜る
122 :
132人目の素数さん :2009/02/11(水) 17:16:14
>>120 無理じゃなくて。
できるとすれば、具体的にどうすればよいと思うか?
否定だけでは今のところみな評論家のままだよ。
俺同様、この点でお子様に負けていると思うんだよ。
123 :
132人目の素数さん :2009/02/11(水) 17:18:37
>>120 >ある程度の不便さは、使う側を選別するために必要だと思う。
これ彼が言ってた。
統計専門家は現場を意識していない。
素人と向き合っていないってことだね。
変われない専門家じゃないかよ。
124 :
132人目の素数さん :2009/02/11(水) 17:28:04
>>122 いや、統計学については、中卒、高卒でもわかるようにノウハウは作られてる。
そのために先人がいろいろとテキストを書いてきてるし、きちんとしてる所は
社員に対してそのためのトレーニングもしてる。
問題は、ソフトをある程度以上に簡単化することは、統計の誤用を引き起こす
原因になるってこと。
私はそっちの方がリスクが高いと思ってる。
ということで、統計をできる人間を入れて、やらせればいいんであって、
みんなにやらせる必要はないよ。その方が無駄ってのが私の考え。
125 :
132人目の素数さん :2009/02/11(水) 17:29:32
>>120 >統計をわかってないと、そもそも「目的でボタンを選んで」ができない。w
これは違うと思う。
例えば株なら○%で上がる株を探したいとか目的がある。
それは株の知識があればできる。いわゆる現場の人ならできるんだよね。
>「現場の人は回帰分析が何に使えるのかさえ知らない」のなら、そんな人が
>回帰分析をしてはいけない。
>ある程度の不便さは、使う側を選別するために必要だと思う。
当然、現状のSPSS等のソフトのような場合、わからずに使っては怪我をする。
ならこんなのはどうだろう。指導者が横にいれば使ってもよい。だろ?
彼は指導者の部分をプログラムに組み込もうとしていると思うんだよ。
素人が使っても正しく回帰分析を使うことができている。
しかも意識せずにというのが使用者にストレスがなくていいね。
126 :
132人目の素数さん :2009/02/11(水) 17:29:37
ついでに書いておくと、このデータを分析してくれって持ってこられても 分析にたえないデータってあるよね。 データの取り方から計画しないといけないことを考えると、ソフトだけ自動化 してどうするの?ってのがある。
127 :
132人目の素数さん :2009/02/11(水) 17:35:48
>>125 >例えば株なら○%で上がる株を探したいとか目的がある。
>それは株の知識があればできる。いわゆる現場の人ならできるんだよね。
知識があれば上みたいなことは考えない。
こういう喩えを出す段階で、
>>125 の知識が危ないでしょ。
>>125 は、○%で上がる株を予測できるシステムを組めるの?
(まあ、いまだとありませんとかでそうだがw)
また、素人に正しく回帰分析をさせるような指導込みのプログラムを組んだとしよう。
すると、「それはできません」「その処方は間違っています」と指導される。
これだけじゃ素人には改善できないので、なぜダメなのか理由も説明することになる
だろう。
でも、そんなこと言われたら、「意識せずにストレスにならずに使える」には
ならんでしょ。
その理由自体が読んでもわからないかもしれないのに。
128 :
132人目の素数さん :2009/02/11(水) 17:37:55
>>126 それアンケートの話じゃないかな。
多分彼がやりたいのは製造品質っぽい。
計画部分の重要性が薄れてくる分野かも。
129 :
132人目の素数さん :2009/02/11(水) 18:02:09
>>127 >すると、「それはできません」「その処方は間違っています」と指導される。
それは自動でやってくれたらいいよね。
間違わないように指導してくれるんだから、駄目だというだけでは指導にならない。
>知識があれば上みたいなことは考えない。
>また、素人に正しく回帰分析をさせるような指導込みのプログラムを組んだとしよう。
君の考える指導込みのプログラムって何かな?
知識があるなら言えるってことだよね。
どんなUIをイメージしているんだ? 具体的に聞き出していったらSPSSそのもので笑わしてくれる気がしてならない。 既存のツールだって十分に統計素人にも使えるように設計されているぞ? EnterpriseMinerもClementineもSPSSも、そしてRもな。 細かいパラメータの設定なんて一切なしの、自然言語で全て入力できるような UIを考えているのか? まあ、書き込み内容を見ていると統計知識も情報技術も無いのがすぐ解るけど。
>>124 も指摘してるけど、年間に何時間か割いてもらって社内で統計の勉強会を開いた方がいいと思う。
ある程度のリテラシーは意思の疎通を大いに助けるから。
その時間すらとれないほどのブラック企業なら、この不景気で明日にでも倒産しておかしくない。
>>125 >素人が使っても正しく回帰分析を使うことができている。
よくご存じですねw
でも、意識が高い連中なら、統計の入門書を買って読むぐらいのことは既にしていて、本当の素人ではないと思う。
「マンガでわかる統計学」、「マンガでわかる統計学 回帰分析編」とか、売れまくってるし。
大卒のエンジニアなら、数学の才能は下手をすると彼を超えるだろうし。
Rのお陰で統計に対する敷居が低くなったのが良く解る。 ・д・
133 :
132人目の素数さん :2009/02/11(水) 18:15:47
>>129 突っ込みたい一部分だけを取り出すのは、ネットではよくあることだが、
>>126 の君が引用した部分の後も引用してもらえないかな。
>これだけじゃ素人には改善できないので、なぜダメなのか理由も説明することになる
>だろう。
>でも、そんなこと言われたら、「意識せずにストレスにならずに使える」には
>ならんでしょ。
>その理由自体が読んでもわからないかもしれないのに。
要は指導付きプログラムを作ったとして、どこまで指導するのかってこと。
結局、教科書と同じになったら意味がないんだけど。
でだ、
>>129 は逆質問で返してきてるけど、君の持ち出した指導込みプログラム
ってのは具体性がないので、何も言ってないのと一緒だよ。
まずは、どういう風に指導するプログラムなら、ド素人でもわかるのか言いだしっぺ
が例をだしてもらえる。
私の意見は、まったくのど素人にはムリ、専門家を育てて配置するか、それなりに
勉強しろってことなので、君の方から示してくれないと答えようがないんだけど。
私の目からうろこが落ちるような、すばらしい発想なんだと思うけどね。
134 :
132人目の素数さん :2009/02/11(水) 18:17:40
>>131 >でも、意識が高い連中なら、統計の入門書を買って読むぐらいのことは既にしていて、本当の素人ではないと思う。
>「マンガでわかる統計学」、「マンガでわかる統計学 回帰分析編」とか、売れまくってるし。
マクロとミクロの話がごっちゃ。
素人は話にならん。本当に統計の誤用とはまさにこのこと。
135 :
132人目の素数さん :2009/02/11(水) 18:18:02
136 :
132人目の素数さん :2009/02/11(水) 18:20:37
>>133 思考停止。慢性病患者だね。
自分で考えようとしない。
137 :
132人目の素数さん :2009/02/11(水) 18:22:27
全世界に現場がある会社だったらかなり厳しいな。 とふと思った。
138 :
132人目の素数さん :2009/02/11(水) 18:27:36
これを実現するには 統計+プログラミング+現場知識が必要になるね。
139 :
132人目の素数さん :2009/02/11(水) 18:28:25
>>138 実際、統計専門家は現場知らないから難しいんだよ!
140 :
132人目の素数さん :2009/02/11(水) 18:29:59
141 :
132人目の素数さん :2009/02/11(水) 18:30:40
結局インテリジェントCAEってことだな。
>>134 解説よろしく!
「マンガでわかる統計学」の英語版を口語表現の参考に読んだことしかないのだけど、
普通に記述統計・推測統計の基礎を書いたものだったよ?
144 :
132人目の素数さん :2009/02/11(水) 18:32:54
>>136 相手に「自分で考えよとしない」と書いてるけど、君は考えてるの?
できるって言うなら案を出してよ。
できるといってる方が案を出すものなのに、できないといってる人(私)に案を
出せっておかしくない?w
できるって言うなら、いい案を出して、私を納得させてよ。
何も案を出さずに、
指導込みのプログラムにすればいい!
その内容は誰でもわかるものでー!
ど素人でも間違いなく使えるー!
なんていってても、単なるバカだよ。
私にすれば、
>>136 は現実を見ることができず、大きなことを言ってるだけで
何も作り上げることのできない、理想主義者に思える。
145 :
132人目の素数さん :2009/02/11(水) 18:36:17
>>138 ソフトはある程度汎用にしておいて、あとはユーザーが自分の置かれた状況に
合わせて勉強するのが一番早い。
う ぜ ぇ IDがないから何人で議論してるか分からん
147 :
132人目の素数さん :2009/02/11(水) 18:38:39
>>144 できないという理由は、現実、誰にも証明できないから
できないとは誰も言えないはずなんだよ。
しかし君はできないと主張してる。
その時点で話す価値のない対象になってるってことに早く気づけ。
148 :
132人目の素数さん :2009/02/11(水) 18:40:59
統計知識も情報技術も現場も知らないガキであることがわかりました。
149 :
132人目の素数さん :2009/02/11(水) 18:42:57
まじプロファイラーだな。
上に書いてある。
彼は既にVBAで一度プログラムしてるようだな。
>>138 の統計+プログラムの力はあるようだ。
それで使われなかったこともあったんだろう。
現場知識の現状も把握しているようだ。
151 :
132人目の素数さん :2009/02/11(水) 18:51:38
>>147 できないことの証明はできないにしても、それが「だからできる」って
証明にはならんのよ。
まったく、案を示さないままに、上記のようなことを言ってる段階で痛い。
数学スレにいるのに、頭悪いと思う。
それとだ、私のできないってのは、他の案のほうが効率的なのに、安くできるのに
無意味ってのも入ってる。
元々の人はSPSSですら、ド素人にはムリと書いているので、あれ以上のUIおよび
簡略化の上で、
>>147 は現場に合わせた指導まで入れるつもりだよね。
素直に、勉強会開いて統計を教えた方が早いよ。
152 :
132人目の素数さん :2009/02/11(水) 18:58:52
>>151 本人ではないが少なからずできるよ。
わざわざできる理由を聞いてる方が無知に見える。
インテリジェントCAEが一例。
153 :
132人目の素数さん :2009/02/11(水) 19:00:56
>>150 >>147 だけど、元の人の発想については、業務を限定して、その作業が定型化されて
いるならばUIを制限することで、作業を効率化することは可能だと思う。
まあ、マクロ組めばいいって気もするが。
でも、
>>125 の場合は、そもそも適用する対象からしておかしいし、そのための
手法も夢を見すぎ、しかも具体案がないので、突っ込んでる。
>>134 単に、世の中で統計の本が売れまくってるから、彼の職場でも統計の本を読む奴がいておかしくない、ってことだよ。
ひょっとして、彼の職場の社員集団は日本全体の無作為サンプリングではない、とか考えた?
なんでもかんでも統計学的な言説だと解釈してはいかんよ。
>>150 >現場知識の現状も把握しているようだ。
なぜ”彼”の言うことを鵜呑みにできるのか、わからないね。
>>152 横レスだが、インテリジェントCAE を使うのは素人じゃないと思う。
>>150 正直、そんな低レベルな話をされても困る。
現場のことも実は何も理解していないから
現場の人間に受け入れてもらえなかったんだよ。
頭でっかちのルーキーには良くある事。
自分もそうだった。
う ぜ ぇ
157 :
132人目の素数さん :2009/02/11(水) 19:27:50
>>152 >>151 、
>>153 だが、
>>152 が見えてなかった。
>>151 でも書いたけど、業務が定型化していて、やることが限られているなら
いけると思うよ。
でも、インテリジェント機能にしても、元の使い道がわからんとどうしようもない。
ある程度わかってる(本当は相当に精通してる)から、そのサポートで効率化できる
んであって、ド素人が使うものじゃないでしょ。
ド素人はサポートされると混乱する...
結局は、少しは勉強してド素人を脱出した方が早い。
158 :
132人目の素数さん :2009/02/11(水) 20:05:35
>>155 現場を理解してないのは俺らも同じだろ?
現場に統計使え、おまいら教えるから勉強しろと。
けど数学得意な俺らにすれば理解はたやすいが得意でないのが多い。
159 :
132人目の素数さん :2009/02/11(水) 20:09:46
>>157 君は一生成功しないな。
現場は統計はど素人だが現場の専門家だよ。
俺らは現場の素人。
現場からしたら少しは現場を勉強しろとなる。
どちらかが歩み寄らねばならない。
いがみ合ってもお互いにとって損だ。
160 :
132人目の素数さん :2009/02/11(水) 20:13:14
ちなみに、現場で活躍中の方に質問なんだけど どんな現場なの? ほんとに統計勉強したことない人ばっかりなの? そういう会社で統計使うんかな?
161 :
132人目の素数さん :2009/02/11(水) 20:19:06
162 :
132人目の素数さん :2009/02/11(水) 20:22:32
>>160 統計知識がある君はどこに就職したい?
友達はどこに就職したいと言っている?
統計人材が流れる先は大方、アクチュアリ、リサーチャーじゃないかな。
163 :
132人目の素数さん :2009/02/11(水) 20:28:42
コンサルティング会社ってことですか
164 :
132人目の素数さん :2009/02/11(水) 20:36:43
就職したい=統計を専門に活用する仕事 逆に統計を専門に扱わない、あくまでも手段の一つ、ただ使った方がより効率的な仕事。 こんな現場ではこのスレのような問題が起きる。
結局なんの具体案も書けないスイーツの夢物語だったな。
166 :
132人目の素数さん :2009/02/11(水) 21:25:27
統計の現場は多数ある。 具体案はそれぞれで考えるしかない。 まして現場知識がないのにこのスレで具体案がでるわけがないと思う。 各個人が現場と話し合って作り上げることが必要になる。
167 :
132人目の素数さん :2009/02/11(水) 21:28:54
誰も現場を知らないことがよくわかった。
168 :
132人目の素数さん :2009/02/11(水) 21:32:53
一体誰だよ現場、現場って言い出したのは・・・
169 :
132人目の素数さん :2009/02/11(水) 21:36:30
たぐってみると、質問者の方のようですね
170 :
132人目の素数さん :2009/02/11(水) 21:42:01
いや傍観者もいるよ。
171 :
132人目の素数さん :2009/02/11(水) 21:43:06
よくよく考えると統計って単なる手段だよなと気付く。
172 :
132人目の素数さん :2009/02/11(水) 21:46:34
ふむふむ
173 :
132人目の素数さん :2009/02/11(水) 21:52:22
統計をもっといろんな分野に使ってもらえば俺らの仕事の領域が広がるんじゃないかな
174 :
132人目の素数さん :2009/02/11(水) 21:54:51
あー、もう一回学生に戻ってダラダラ勉強したいな ストレス社会嫌・・・
>>158 >>159 製薬会社の統計担当者だけど、薬事法、生理学、病理学、メジャーな薬や開発中の
新薬の作用メカニズムを新人研修で教わったし、その後も自主的に勉強してるよ。
生物学は高校でも選択してなかったから、たしかに大変だったけど、
営業マン(MR)相手なら作用メカニズムを教えることぐらいはできるよ。
逆に、医学・薬学・獣医学の出身者に対する新人研修には統計学が含まれるし、
工場でも研究所でも自主的な統計の勉強会をやっているよ。
どちらかが歩み寄るのではなく、どちらも歩み寄るのが当然だと思う。
職場のパートナーがやっている仕事に関する知識が素人レベル、
なんてあまりに非効率的で、冗談にもならない。どの業界・業種でもきっとそう。
>>167 彼自身がどういう業種・現場で働いているか、ということを明かさないのだから、仕方ない。
よほどマイナーな業種でなければ、統計・現場知識の両方で彼を凌駕する者はいると思う。
明かせなくなってしまったのかもしれないけど。
>>171 同感。でも、統計に限らず、学問っていうのは手段。
176 :
132人目の素数さん :2009/02/11(水) 22:06:53
製薬は統計活用が進んでるからな。 生物統計、医学統計ってのがあるぐらいだ。
177 :
132人目の素数さん :2009/02/11(水) 22:09:03
統計担当ってのがある時点でうらやましいよな。
178 :
132人目の素数さん :2009/02/11(水) 22:23:24
oioi、最初から読み直せ。 彼は本当に初歩の初歩的な質問しかしていないぞ。 周りが話を大きくし過ぎ。 > S-plusとか初めから揃っているのではなく、 > 自分でGUIを設計したいのです。 > Rのソースを例えばdll化してVBから読み込むとかは可能でしょうか?
現場、とか言い出して話を大きくしたのは彼だと思う。
いや、彼女の方こそ。
たぶんおもしろがって煽っていただけの周りだと思うが。 彼はいずこへ!?
いや、彼女の方こそ。
それほどでも、てへっ!
すみませんスレチですが、
ExcelのVBAで多変量解析を駆使し、投資用ソフト開発出来る方いましたら500万円で買います。
ロジックは私が用意しますからプログラミングだけお願いします。
ご連絡お待ちしております。
[email protected]
185 :
132人目の素数さん :2009/02/11(水) 22:40:24
>>181 きいてらんね〜や・・・・と
仕組みを作り始めてる
まあやり方はわかったんだから あとは実行するだけだろ、彼ならできそうだ。
187 :
132人目の素数さん :2009/02/11(水) 22:43:53
俺はいったい誰と戦っていたんだ。。。
189 :
132人目の素数さん :2009/02/11(水) 22:45:18
>>178-179 その彼と、今回話を大きくして、現場とか言ってるのは別人じゃないのか?
今回の彼が持ち出した現場の例が「株」だしなー...
煽りたいから煽り隊!
>>184 Excel の VBA、っていうきつい縛りは何のため?エンドユーザーにソフトを売ることを考えてるのかな?
ロジックの特許を押さえるか、ガチガチの契約を結ばないと丸ごと持ち逃げされるよ。特許がとれたら、このスレで報告してね。
こういうとき自分でプログラムできたらなーって思う。
>>191 VBAでプログラムした彼ならできるのでは。。
しかし彼はいない。。
彼はずっと張り付いてるジャンw
195 :
132人目の素数さん :2009/02/11(水) 23:28:19
>>194 いや、崇高な理念に燃えていたので、こんなところで時間をつぶしてはいないはずさ!!
この程度で崇高な理念w > S-plusとか初めから揃っているのではなく、 > 自分でGUIを設計したいのです。 > Rのソースを例えばdll化してVBから読み込むとかは可能でしょうか?
すごい数のレス付いてるから、何か大きなアップデートでもあったのかと思って覗いてみれば… それにしても、彼とか彼女とかわけわからんw コテ付けてくれ。
いつの間にかこんなに盛り上がったのか。w エキスパートシステムが瓦解したことを知らない世代が増えたってことだな。
199 :
132人目の素数さん :2009/02/11(水) 23:52:23
>>198 あんまりLispをいじめないで下さい(><)
200 :
132人目の素数さん :2009/02/11(水) 23:55:08
まあ別にLispが悪いわけじゃーない
人工知能でエキスパートシステムを作る目論見は瓦解してるけど、 エキスパートシステムはいろんな業界で生きていると思う。 アパレルショップに置いてあるファッションコーディネートシステムとか。
202 :
132人目の素数さん :2009/02/12(木) 00:23:07
>>196 いや、崇高な理念というのは、何もわかってない現場のために、使いやすいソフト
開発しようと言う部分なんだが。
じゃあおれは現場の人間の代わりに自ら問題意識を持って、 自らデータを漁って自ら最適解を見つけ出すソフトを開発するよ。 具体案はナッシングだけど。
204 :
132人目の素数さん :2009/02/12(木) 00:37:50
彼のは統計手法の組み合わせだけでなんとかなりそうだが、君のは統計外の知識が必要になりそうね。
まあ、現場が何も知らなくても使えるソフトを作ると 「何かわかんないけど、これの言うとおりにして、こことここに表示される数値を 写しておけばいいらしいよ」となり 「何か、出てきた数字がまずいみたいなんすけど」「あ、それは写すときに適当に なおしておけばいいよ。p=0.02と書いとけば問題ないみたいだ」となったり、 「何か、計算してくれないんすけど」「あ、それはデータに問題があるってこと だから、それらしい数字を足しておけばいいよ」とかになるんだよな。 現場はいそがしいから、手取り足取りしてくれるソフトつくっても、手順が面倒だと 思われて、逆にすっとばされることがある...
子供を作ってまともな教育を与えれば生体コンピューターになるんでね?
それってコストパフォーマンス悪そうじゃない?
208 :
132人目の素数さん :2009/02/12(木) 00:42:34
>>205 アクションにつながってないから当然無意味。
まさにSPSS使ってる現場だな。
209 :
132人目の素数さん :2009/02/12(木) 00:43:53
>>206 それいいアイデアだよね!
で 具体的にどうしようか?
210 :
132人目の素数さん :2009/02/12(木) 00:54:48
で、現場は統計を使って何をしたいの?
社内プレゼンでつかいたいなら
>>205 でいんじゃね?
予測して儲けたい、とかいうなら、手取り足取りソフトに頼るな、っつ〜話しだし。
使う手法が決まってるなら、薄いGUIラッパ書いて終わりじゃん。
そもそも、彼の質問ってなんだったっけ?
まず子供をつくるところからだな。
子作りの現場で注意することはありますか?
男が生まれるか、女が生まれるかの確率を自分の子供に適用しちゃダメってことだ。 男が続いたから、次こそは女の子だと思って頑張るんじゃないぞ!
>>212 「今日は安全日なの」を信じちゃダメだ。
>>205 品質管理や生産プラントの収量向上が目的なら、もうちょっとマシになると思う。
システムが吐く出力が「行程 xx の温度を 10℃上げてみてください。」とか、
「データ不足により、意味のある答えはえられませんでした。」とか、
「多重共線性が生じています。彼を呼んで変数選択をさせてください。」とか、
「内部エラーです。彼を呼びつけて叱り飛ばしてください。」とか。
それぐらいなら作れそうな気もする…
>>208 アクションにつながらない作業なんて、まっとうな企業には無い。
マーケティングデータや学術研究データの統計解析は、
その後の営業戦略策定や研究結果の考察に直結する。
それらに SPSS や SAS は思いっきり使われてる。
そして、
>>205 みたいなデタラメをさせないために統計専門家がいたりいなかったりする。
>>205 、
>>215 >>89 とか読むと
>現場の方はRとかには興味ないんです。
>興味があるのは結局どうすれば改善するの?答えを教えて!
>ということだけなので、Rのコードすら見せないつもりです。
>最終結果のみ出力ですね。
>(当然、必要な人のために計算手順、考え方を示したレポートも出力しようとは思っています)
>
>欠損値を含むデータは一式除去します。
>(補完は事実ではないので使いたくないしデータは多数あるので)
データが多数あって、欠損があるのは除去しても問題ない環境らしいので、
データ不足は最初からおきなさそう。
データが多数ある、結果だけとか書いてあるし、
>>125 が彼だとすると、
製品の品質管理とかじゃなく、株とか景気の予測屋さんで、経済とか財務
データの分析かな。
217 :
132人目の素数さん :2009/02/12(木) 01:44:39
彼を主成分分析にかけてみてください><
彼女もお願いします><
219 :
sage :2009/02/12(木) 02:10:16
彼女を彼で内挿してください><
220 :
132人目の素数さん :2009/02/12(木) 15:25:40
>>125 は彼じゃないだろ。
株の話をしてる時点で違う。
>>216 株屋さんなどの金融関係なら、「現場」とか「改善」なんて言わないと思いますよ?
どう考えても、品質管理とかプロセス関連。
>>220 いや、
>>125 は間違いなく彼だね。本人しか知り得ない事実↓を知っているから。
>素人が使っても正しく回帰分析を使うことができている。
>しかも意識せずにというのが使用者にストレスがなくていいね。
客観的には、彼の認識している世界における事実、っぽいけど。
>>221 それは俺でも想像できる。
俺でもそう答える。
>>221 推測と事実を混同してはぶれる。
事実はなんだ?
う ぜ ぇ
>>221 まあ、例を出す時に株を出しちゃったけど、やってるのは品質管理とかかもね。
株の現場を知ってるにしては、稚拙な喩えだったしね。
しかし、たまにあらわれて「うぜぇ」って言ってるのは誰なんだろうね?
理想は人間を狭量にするのかな...
226 :
132人目の素数さん :2009/02/13(金) 07:21:27
だめだこいつ。 仕事できねぇ典型だな。
227 :
132人目の素数さん :2009/02/13(金) 07:52:25
>>225 このスレを建設的に進めたい。
個人の悔しさをぶつけるのは他でやってくれないか。
今北
ものすごくレスが増えてて驚いたが、イタいコが複数人湧いてただけか
>>225 と、あとは分かんね
この板にもID欲しいな
自分は「イタい子」って嫌いじゃないけどな。 志と実力がつりあってないから「イタい」と批判されるわけで、 志に見合った実力を身につけて、見返してやればいいさ。 その過程で、実は批判者の側が正しいことが分かったりもするけれど、 それもまた人生。
必死w
235 :
132人目の素数さん :2009/02/16(月) 08:53:57
これらの言動の根本原因は自分より格下だと考える発想からきてるようですね。 このような人に、逆に格上の人を挙げてみてくださいと言えば、有名人しか挙げられないんじゃないかな。 部分的に見れば大人ですら小学生に負けてる知識もある。 勝ち負けの発想は和を生まないし幸せをもたらさない。 どんな相手でも敬っていきたいものです。 みんなで協力して一つのものを作り上げていきたいものです。
236 :
132人目の素数さん :2009/02/16(月) 11:07:50
>これらの言動の根本原因は自分より格下だと考える発想からきてるようですね。 R好きのどこかの教授みたいだな。
237 :
KingGold ◆3waIkAJWrg :2009/02/16(月) 21:54:14
敬うことも蔑むこともない、しかし悪を除外する。
238 :
132人目の素数さん :2009/02/16(月) 22:09:07
なんだそりゃ?
239 :
132人目の素数さん :2009/02/17(火) 03:00:17
悪なんかいないけど。
240 :
132人目の素数さん :2009/02/18(水) 01:17:44
>>237 King→王様
Gold→一位
どんだけ自分大好きなんだよ。
ネタ仕込みに座布団一枚。
久しぶりに見たら、RjpwikiのQ&Aで回答しないで文句だけ言ってる回答者が相変わらずウザイです。 あまりのウザサに、俺も含め昔はいた優良回答者もだんだんいなくなってる気がします。 何とかしてください。
242 :
132人目の素数さん :2009/02/18(水) 08:45:08
kingも大学で教えているんだし 肩書きもあるんだから 恥ずかしいので出てこないで欲しい そのうち誰かばれちゃうぞ
>>241 2チャンネルのノリで書き込んでいるcapetapetaという盆栽好きのニートに限っては、質問者の方に
問題があると思うけど。回答者を馬鹿にするにもほどがある。もちろん、スルーできない大人も悪いが。
自分で広めているつもりだが 離れていく人も(の方が?)多い事実に 気が付いていないようす Sもそうだった
246 :
132人目の素数さん :2009/02/23(月) 12:46:46
247 :
132人目の素数さん :2009/02/27(金) 20:27:46
hist2d()とpersp()で二変量データの密度ヒストグラムを描かせています。 ここで三つの軸の範囲を自分で設定するにはどうすればよいのでしょうか? よろしくお願いします。 > h2d <- hist2d(x,y,show=FALSE, same.scale=TRUE, nbins=c(20,30)) > persp( h2d$x, h2d$y, h2d$counts, + ticktype="detailed", theta=60, phi=30, + expand=0.5, shade=0.5, col="cyan", ltheta=-30)
>>247 persp()にxlim,ylim,zlimっていう引数があるけど?
249 :
132人目の素数さん :2009/02/27(金) 23:02:25
>>248 それでうまくいきました。ありがとうございました。
250 :
132人目の素数さん :2009/02/28(土) 07:57:35
昨夜のものです。 hist2dでcountsをヒストグラム表示しましたが、これを頻度にして表示する方法はないでしょうか? (1, 5, 4, 2, 1, 7)というcountを(0.05, 0.25, 0.2, 0.1, 0.05, 0.35)と頻度に換算して表示したいのです。
>>250 h2d$counts を h2d$counts/sum(h2d$counts) にするだけだと思いますが。
一週間ほど前の荒れ具合を見て、このスレにいるのはどうしようもないクズばかりだと感じていたが、 ちょっと自分で考えれば分かる質問をするクズや、それに丁寧に回答する優しいクズもいることも知って感心した
254 :
132人目の素数さん :2009/02/28(土) 19:06:00
>>252 よく分かっていれば質問もしてこないだろうし
場所も場所だし。これが現実だろう。
どうしていきたい?
いい解決案でもあるかな?
自分の考えているレベルのスレッドか
ブログでも建てるのも手じゃない?
>>251 ありがとうございました。その通りで行けましたmOm
√(256) = 16 才は思春期
よかったよかった。 どうも中央農業総合研究センターのほうが新しいみたいね。
260 :
132人目の素数さん :2009/03/05(木) 23:01:16
R2.8.1入れて使いはじめたらアンチウイルスソフトが反応。 gtools.dllがR2.8.1のフォルダに入っているという・・・ 何で?
>>260 アンチウイルスソフトは何ですか?
アンチウイルスソフトのサポートページを見ると情報が得られるかもしれません。
262 :
132人目の素数さん :2009/03/07(土) 02:33:36
今度これ使い始めるんですが、 単刀直入に難しいですか? 参考までに 高校時代は数学は2Bまでやりました(あまり覚えてないですが) 経済商系統の学部の学生です 統計学は多少わかります
統計学のこともだけどコンピュータが得意かも問題。 基本はコマンド入力だからね。
264 :
132人目の素数さん :2009/03/07(土) 19:33:19
たいしたコマンド入力でもネーヨ
コンピュータに得意とかいえるほどのコマンド入力って アセンブリ言語?
ともに得意な人の発言だね。 文系だと「コマンド入力」という言葉自体を何それ?と思っても不思議じゃないが。
すみません、R の演算子で ~ ってどういう機能なんでしょう? r-tips.pdf を見ているのですが、よく分かりません。 何か変数に ~ を付けてみても、 > x <- 1:10 > ~x ~x となるだけで、何をするものなのか分かりません。
268 :
132人目の素数さん :2009/03/08(日) 14:45:59
RでLU分解を行う関数ってありますか?
>>267 ~ って演算子じゃないんじゃないか。
モデル式のとき = の代わりに使うしかできないと思うけど。
既出かもしれませんが、RGuiでコンソールで日本語入力した時にキャレットの位置がずれるんですが仕様ですか? 例えば、 > グループXの標準偏差<- と入力した時点でXじゃなくてYの間違いだと気づいたとします。 そうして左矢印キーで赤いキャレットを戻してXのところに合わせてBackSpaceキーで消そうとすると、 「X」ではなくて「プ」が消えます。 ちなみに環境はWindows VistaでRのバージョンは2.8.1で日本語入力システムはATOK2007です。
plotにそんな使い方があるとは知らなかった。 > plot(group ~ extra, data=sleep) > plot(extra ~ group, data=sleep) も面白い。 モデル式同様関数の引数の中でしか使わないのかな。
273 :
132人目の素数さん :2009/03/10(火) 11:30:55
>>267 ~xが何なのか見たければstr(~x)とすればよい
~xがクラスformulaを返していることが分かるでしょう。
~はクラスformulaを返す演算子ということではないでしょうか。
データをeditで編集したら、 Warning message: In gsub(perl = TRUE, "(?<!\\\\)((\\\\\\\\)*)\"", "\\1\\\\\"", "f") : perl=TRUE は UTF-8 ロケールに対してのみ完全実装されています という警告文が出てきて、反映されるのは、編集直後の表示だけなのですが、どうすれば、その後もデータを反映させれますか? エラー文からして文字コードがいけないと思うのですが、文字コードはどこで変えればいいのかわかりません。
>>275 環境とかは秘密ですか?
> x <- data.frame(x=runif(5),y=LETTERS[1:5])
> x
x y
1 0.3677259 A
2 0.9520577 B
3 0.5019692 C
4 0.2780160 D
5 0.5301348 E
> edit(x)
x y
1 0.3677259 日本語
2 0.9520577 問題なし
3 0.5019692 C
4 0.2780160 D
Warning message:
In edit.data.frame(x) : 'y' 中に因子水準を加えました
こちらでは特に問題ありません。あなたの問題が再現する方法を提示した方がよいよ。
環境はXP ProでRのver. 2.8.1です。
278 :
132人目の素数さん :2009/04/04(土) 20:09:02
Rってデータ量5M位から、もう動きが怪しくならないか? あとはここだけだな。 データマネジメントも苦手か。
>>278 それってものすごいメモリ消費になってるんじゃ・・・?
280 :
132人目の素数さん :2009/04/05(日) 11:37:29
大容量を扱うときって外部プログラムからRのライブラリ使うような感じの方が効率よくないかな
281 :
132人目の素数さん :2009/04/05(日) 12:59:31
>>280 それってなんか違うような気がする。
SASからRを呼び出すイメージ?
282 :
132人目の素数さん :2009/04/05(日) 13:06:09
まあそれでも良いけど cとかjavaとかね
>>282 使い勝手悪すぎ!
ならcで全て処理を書くよ!
java・・・全部Rで行くよ。
284 :
132人目の素数さん :2009/04/05(日) 15:58:08
でもメモリ足りないんだろ 臨機応変に出来なきゃ cでかけるならR要らないだろ 出来ないから使ってるんじゃないかな そういうものだよ
おい、お前ら。結局データ加工は何でやってるんよ? awkか?perlか?それともSASか? 備え付けのデータセットしか分析していないとかいうオチはないよな?
>>285 データ加工の前処理は、日常的に使っているsed tr paste cut sort
uniq colrm nkfあたりで十分だけど。そのあとは、すべてRの中で処
理しちゃうな。たまにperlも使うけど。
>>286 なんとストイックな。でももう少し楽したいとは思わないの?
あと扱うレコード数は1万件ぐらいがMAXでしょ?
データの形態によってはRの中でデータ加工をした方が楽な場合がある。 私が日頃使うデータは、そんなタイプ。何重にも階層化されたlist構造 をもつので、sapplyを入れ子にしまくり。これをperlで書いたら大変な ことになるよ。
データを取り込む前の加工と取り込んだ後の加工とに わける必要があり、289の言うのは取り込めた後で、 285の言わんとするところは(おそらく)取り込む前の ことを指していると見ることができそう。 たしかにperlで書いても出力後の果は、またテキストだし 値の管理もできない。 取り込めた後なら289が言うようにRは強い。 元のデータが煩雑な場合にRで取り込みやすいように加工するには 286の形になるだろう。 データの管理を簡易に任せたい、あるいは、汎用コンピュータからの 日本語のEBCDICや他のコードが入り混じっている、あるいは、極端に 複雑なレイアウトで大容量なら、SASを使用るメリットは大きい。 どの点を言っているのか、どの程度まで必要かによって向き不向きがあるので、 一言では、な〜んとも答えきれないんだろうな〜 誰かデータ準備してくれる人いれば、あるいはDBで管理されているデータだけ を使用するのでよければ、Rだけで済むかもしれないし。ふ〜〜
>>290 加工前と後を分けるのではなくて、どこまで加工した段階で、Rに渡すのかという
タイミングの話をしていたのでないの?例えば、めちゃくちゃ複雑な階層構造をもつ
XMLがあったとして、perlなどで十分に加工してからRに取り込むのか、またはXMLを
とりあえず取り込んでからRの中で編集加工するのか、とか。
文章読んでるとそういう意味でもなさそうな気もするんだけどな。 ちなみに、上記で言った意味ではXMLは複雑な構造までいかない。 きれいな構造だし。 めっちゃめっちゃなのがあるんだよ。
みなさんRでのコーディングルールというか、そんな真面目なものじゃないけど 気をつけてる点とかってどんなのありますか? 私はt<-12345とか死ぬほどやって頭にきた挙句、自分が使う変数は必ず .t <- 12345 とか、関数なら my.func <- function(...) ... とかドット始まりか自分プレフィックス始まりにするようにしたんですが、 なんでもドット始まりとか正直ウザー、です。このあたりのR的慣習とか ベストプラクティスってどこかで紹介されてたりするんでしょうか?
そういえばさぁ、シェルスクリプトの中で自分用の変数を 命名するとき、"_"(アンダースコア)を最初につけるって いう風習をどっかで学んでから、シェルスクリプトを書く ときにはそうしている。 Rで_は全くお薦めでないが。.(ドット)は隠しファイルみ たいでやだな。実際、隠し関数(内部関数とも言う)には、 ドットから始まるように命名しているのも多いし。 あとは、何がRの変数名で使えるんだったけ?Namespaceをう まく使えばよいのかもしれないけど、 Internal name space support functions. Not intended to be called directly. って書いてあるからユーザは普通使わないだろうな。
t にデータを代入しても、関数tの挙動は変わらない件について。 (R version 2.8.1 (2008-12-22) on Fedora 10) > t(matrix(c(0, 0))) [,1] [,2] [1,] 0 0 > t <- 12345 > t(matrix(c(0, 0))) [,1] [,2] [1,] 0 0
cでも同様になる。 > c <- 10000 > c(1,2,3,4) [1] 1 2 3 4 Rの処理系は、文脈が関数呼び出しの場合、ある変数に束縛されたオブジェクト が実行可能かどうか判断して、実行可能でないなら外のスコープを見に行くよ うだ。 この環境で、文脈が変数参照なら、こうなる。 > c [1] 10000 > t [1] 12345 > c(c, t) [1] 10000 12345 すげえ、もう訳わかんねえ。 ?c や ?t はちゃんと呼ばれるようだ。
>>295 あれ?とりあえず判り易い例としてtを出す前にt<-12345で試して
これなら問題ないなと確認したつもりだったのにorz
まあ、"t"限定でなく、要はうっかりぶつかったり混乱しそうな名前付けとかを
回避するためのネーミングルールとか、何か慣習的にやってるものありますか?ってことで。変数はぶつからないから気にしなくてもダイジョブ?
>>294 ドットは慣例があるからたとえば、
is.xxx なら、xxxであるかどうか判定する関数だし
read.xxx なら、xxx形式のデータの読みこみだし
じゃあwrite.xxxは? plot.xxx? わかるでしょ。直感的に。
上のは293あてね。 一文字変数は極力避けたほうがいいよ。 そして、先頭ドットは隠れ関数/変数の意味合いがあるよ。
>>296 ,
>>295 Rではネーム空間と関数空間が別ってことでしょう。
これはlisp系の影響を受けた言語ならあながち不思議ではないし、普通に同じ変数と
同じ関数の名前があるなんてざらなのです。Cの系統から見れば不思議なのですがね。
仕様をみると、Rって記述はCやjavascriptに似ておりますが、中身は実質lispの方言という
印象なんでね。
ごめん ネーム空間じゃなくて変数空間だわ。 ;(defun foo (vector) ; (let ((length (length vector)) ; …)) みたいなことを差して 300を書いてます。一つめのlengthは変数だし二つめは 関数だしね。Rで書けば > foo <- function(vector) + { + length<-length(vector) + … + } こんなんかな。
>>300-301 お、言語に詳しい人が来たみたいね。
だけどそれは違う。R の名前空間は、変数と関数とで分かれていない。
影響を受けているのはLISPの中でもScheme。
もしCommon Lispみたいに、名前空間が分かれているなら、
> x <- function() print("x")
> x()
[1] "x"
> x <- 1
> x()
エラー: 関数 "x" を見つけることができませんでした
このエラーは起こらないはずでしょ?
変数のスロットが一つしかなくて、function() print("x") が 1で上書きされ
てしまうから、こういうことになる。
>>302 なるほど、てっきりわかれてるのかとおもったけど違うのか。
ここから先は、言語オタクのための説明。
>>302 の x はかち合って、c や t がかち合わないのは、c や t がユーザ
定義変数のスコープの外側にある、組み込み変数スコープで定義されているから。
関数と変数で名前空間の分かれた言語(Common Lisp, Rubyなど)は、名前の衝突
は起こりにくいが、変数に関数を代入する手続きが煩雑になり、高階関数を書
きづらい。
関数と変数の名前空間が分かれていない言語(Scheme, JavaScript, Pythonな
ど)は、関数を変数の一種のように扱えて、高階関数が書きやすいが、関数名と
変数名がぶつかってしまう。だから例えばSchemeだと、リストを収める変数に
list という名前は使えず、lis とか書くのが慣例。
つうことで R は、
>>296 の通り、関数呼び出しの文脈で、ある変数に束縛され
ているオブジェクトが実行可能でなければ、その外のスコープに同名の変数を
探しに行くことにした。
このおかげで、変数に関数を自在にセットする便利さと、組み込みの関数名と
変数名がかち合わない便利さの両方を得たわけ。
rpy2使ってる人いますか?
306 :
132人目の素数さん :2009/04/12(日) 19:01:44
欠損値""を欠損値として読み込むにはどうすればいいでしょうか? 具体的には以下のようなファイルを読み込む場合です。 1,2,3,4,5, ,,8,9,10, 11,12,,, scan("cliptable",fill=TRUE,na.strings="") ではうまく読み込めません。 欠損値が詰められます。
read.csv("cliptable",header=FALSE) やったらあかんの?
Excelのクリップボードからの読込みでした。 そんなわけで、 scan("cliptable",fill=TRUE,na.strings="",sep="\t") でいけました。 お騒がせしました。 read.table系は処理コストが高いのであまり好きではありません。
310 :
132人目の素数さん :2009/04/12(日) 22:05:41
行列のべき乗って、適当な関数ないの? 固有値分解しないと駄目?
ha?
312 :
132人目の素数さん :2009/04/13(月) 00:15:12
314 :
132人目の素数さん :2009/04/19(日) 23:04:19
結局、データマネジメントにはどの言語(ツール)を併用するのが良いのかね? 重要な問題だと思うんだけどなぁ。
R-tips、アマゾンでべた褒めすぎだろ なんであんな糞わかりにくい本が5つ星なんだよ
316 :
132人目の素数さん :2009/04/27(月) 01:51:53
>>314 適当なSQL鯖にRODBCでつなげばいいんじゃね?
318 :
132人目の素数さん :2009/05/04(月) 16:08:05
このbugs式はどこが間違っていますか? model{ for ( i in 1:n ){ x[i] ~ dnorm ( b0 , tau ) } b0 ~ dnorm (0 , 0.001 ) tau ~ dnorm(0 ,0.001) } 単純にデータxがあって、平均と標準偏差を求めたいだけです。
そこに入れるまでの過程とか、 そう言うもの(別ツール)に頼るかしかないのかってこと を言っていると思うよ。
320 :
132人目の素数さん :2009/05/05(火) 02:20:31
Rに、最も当てはまりの良い分布を自動的に選択してくれるパッケージってありますか? イメージとしてはこんなのです。結構便利で需要もありそうですよね? x <- rnorm( 100 , 10 , 4 ) result <- FitDistribution( x , type="continuous" ) summary( result ) [[1]] [1] normal distribution [2] parameter:mean= 9.92 sd=4.1 [3] AIC:421.3 [[2]] [1]logistic distribution [2]parameter:location=9.92 , scale=3 [3] AIC:501.2
321 :
132人目の素数さん :2009/05/05(火) 12:10:11
322 :
132人目の素数さん :2009/05/07(木) 22:33:39
どなたかブートストラップ法とクロスバリデーションの講習会をご存じないでしょうか? 知っている方がいましたら教えていただけると助かります。
323 :
132人目の素数さん :2009/05/08(金) 01:08:47
z <- matrix() heatmap(z) で、heatmapを描いてくれるのですが、 縦軸横軸に個々の要素の名前(名前が付いていない場合は数字) が付きます。この名前、もしくは数字を消すにはどうした良い ですか?教えていただけると大変助かります。
>>323 糖鎖とタンパク質との反応をheatmapで描いている人?
heatmapエンター
でheatmapの定義内容が表示されるので、当該部分を編集して
my.heatmap <- function(....
と新コマンドを作成したらどうですか?
あと、?axis を読んでおく。
325 :
132人目の素数さん :2009/05/09(土) 10:32:40
テキストデータの統計科学入門 という本に データ数が少ないときデータの平均値はt分布に 従う、と書いてある。笑わせてもらいました。
mergeの2変数をkeyにできる関数ってないのかな? 2つの変数の両方が合致したときのみデータフレームを連結してくれるような。
327 :
132人目の素数さん :2009/05/17(日) 12:00:22
統計ソフトRを用いて、CUTを使い例えば体重の最大値と最小値を求める場合、どうすれば…?
最大値最小値って簡単にまとめて出てこなかったっけ? 平均とかと一緒に
329 :
132人目の素数さん :2009/05/17(日) 12:19:08
cut使い、最大値と最小値求める場合は簡単に出来る?
>>327 =
>>328 =
>>329 あまりに素人質問過ぎて同一人物なのがミエミエ。
最大値を求めるのはmax、最小値を求めるのがmin、
summaryやfivenumでその他の統計量と同時に出力。
cutは区分値を求めるものであり最大値・最小値を求めるものではない。
331 :
328 :2009/05/17(日) 14:02:12
おれも素人だけど別人です。
332 :
132人目の素数さん :2009/05/17(日) 14:33:13
糞でる
333 :
132人目の素数さん :2009/05/17(日) 17:50:34
糞したら負けかなと思ってる
335 :
132人目の素数さん :2009/05/17(日) 22:30:28
じゃ、栓をしときなさい。
336 :
132人目の素数さん :2009/05/18(月) 01:50:05
>>327 、328、329
???
どーいうこと?
…体重でもなんでもいいけど、例えば四分位数求めたい時にcut使う(?)(間違ってたらスマソ)
>>327 >>328 >>329 素人かどうか、同一人物かどうかはどうでもいいけど、取りあえずRをインストールして
みたらどうだろう。少なくともRを使ったことのある人の書き込みとは到底思えない。
>>327 の質問の内容・仕方では、
>>330 の答え以上は期待できないよ。
fivenum()なんて知らんかった。
338 :
132人目の素数さん :2009/05/18(月) 16:43:39
ちょっとお尋ねします。 Rのround関数はJIS方式のため、例えば3.65を丸めれば3.7では無く3.6になる、という所は理解できたのですが、 直前に3.65を求める計算によって結果が変わるケースに出くわしました。 > round(3.65,1) [1] 3.6 #想定通り > b<-(4.8+2.5)/2 > b [1] 3.65 > round(b,1) [1] 3.6 #ここは想定通り > a<-(4.9+2.4)/2 > a [1] 3.65 > round(a,1) [1] 3.7 #なぜ? Rjp wikiのJIS式四捨五入ページなど調べてみましたが、どうにも分かりません。 ご教授いただけますと幸いです。 Rのバージョンは2.81で、Windows MCE上で使用しています。
339 :
132人目の素数さん :2009/05/18(月) 16:51:50
S=b/a∫(acosθ→a)√(a^2-x^2)dx+acosθbsinθ/2 この問題の答えがabθ/2になるのですが、途中計算がわからないので教えてくれませんか? ∫の後ろの括弧は積分範囲です
340 :
132人目の素数さん :2009/05/18(月) 16:52:43
すいません誤爆しました
341 :
338 :2009/05/18(月) 16:56:49
追記です Excel VBAのRound関数もJIS式だった事を思い出したので、念のため試してみましたが、 いずれも3.6になりました。 Cells(1, 1) = Round(3.65, 1) b = (4.8 + 2.5) / 2 Cells(2, 1) = Round(b, 1) a = (4.9 + 2.4) / 2 Cells(3, 1) = Round(a, 1) うーん、何なんでしょ。
ヒント > (4.8+2.5)/2 - (4.9+2.4)/2 [1] -4.440892099e-16
343 :
338 :2009/05/18(月) 17:52:45
>>342 ありがとうございます。浮動小数点演算誤差なんですかね?
ズルっぽい雰囲気も漂いますが、2段階で丸めるようにします。
344 :
388 :2009/05/19(火) 10:26:48
345 :
132人目の素数さん :2009/05/19(火) 18:28:12
今日初めてWin版のインストールして、ヘルプ見ながら操作しています。 ちょっとお聞きしたいのですが、クリップボードにあるcsvもしくはタブ区切りのファイルを データフレームとして取り込みたいと思ったらどうするのが一番手っ取り早いでしょうか?
347 :
132人目の素数さん :2009/05/21(木) 09:27:21
ありがとうございます、できました。 まずヘルプ回りの関数類の使い方を憶える事と、パッケージの概念を理解するところからですね、ややこしいです……
348 :
132人目の素数さん :2009/05/26(火) 00:17:17
統計用語の英語は全然わからない、ヘルプまともに読めない、言語もトリッキーな仕様 なんつーか見る者を絶望させる言語ですね…… ヘルプの日本語訳(古いバージョンのでもいい)があるといいんですけど……
真の絶望は、エラーが出た際にエラー発生行数すら教えてくれない事じゃないかとw
350 :
132人目の素数さん :2009/05/26(火) 09:56:02
>>349 なにぃぃぃぃ、そいえばステップ実行はしたけれど、そこにはそれらしい情報なかったな……
351 :
132人目の素数さん :2009/05/26(火) 09:58:39
一週間にして心が折れそうだ(ToT)
>>351 まぁなんだ。頑張れ!
身近に教えてくれる人はいないの?
353 :
132人目の素数さん :2009/05/27(水) 12:30:26
それって一行一行デバッグしろってことか
Rは対話的な統計解析環境で、スクリプトを書いて一気に処理することもできる
というだけの話。コンピュータ開発言語と同列に考えたら駄目だよ。
>>349 エラーが出たときにエラーが出た行で止まってくれるから、発生行番号が
不明でも一目瞭然なんだけど。わざわざoptions()でechoを止めているの?
>>353 意味が分からん。Rの問題ではなくて、開発環境(テキストエディタなど)
の問題じゃないのか?C-c C-cで文脈を判断して、パラグラフなり関数定義なりをまとめて実行してくれるから、まとめてデバッグできるけど。、
C-cってなに?
>>354 >エラーが出たときにエラーが出た行で止まってくれる
そうか、エラーが出た時はコマンドプロンプトにスクリプトをコピペして
動かしてみれば良かったんだな。
357 :
328 :2009/05/28(木) 12:34:10
大文字CはCtrl C-cはCtrl+cって言う意味。 MはAltかEsc
>>356 エディタから、いちいちコマンドプロンプトにコピペしていたら、疲れない?
文明の利器を使いなよ。エディタから、カーソル行、または選択複数行をRに
送って実行する機能があるだろ。
>355 ごめんほかのスレの質問と勘違いした。 xyzzyスレだと思った。
360 :
354 :2009/05/28(木) 12:38:30
>>359 C-cの説明はそれであってるよ。
xyzzyからRを使っているの?
xyzzyはいつもエディタに使ってる。 Rを一度使ったことあったからそのときに2chブラウザのこのスレをお気にスレに入ってただけ。 てっきりxyzzyの初心者の質問かと思って。
>>356 例は良くないけど、
基本は、昔の汎用コンピュータでの
ラインバイラインでのインタプリタと
同様と考えるといい。
最近Rを使い始めたものです データの保存について質問です ワークスペースを消す際に作業スペースを保存しますか? という質問が出ますがここではいを選択すればこれまでの作業内容が保存されるのでしょうか? 前回この操作をしたにも関わらず新しくRを立ち上げても 以前にセーブされたワークスペースを復帰します という文が出てくるだけで以前の作業内容が反映されません 作業スペースの読み込みコマンドからR Workspace (.RData)を選択して開こうとしても load("C:\\Users\\kobayashi\\Documents\\.RData") の一行が返されるだけです 他にどのような操作をすればよいのでしょうか?
>>363 初心者ならではの初々しい質問だな。
.RDataは現在Rが作業しているフォルダに保存されるので、違う場所(フォルダ)で
Rを起動すればそのときに自動的に読み込まれる.RDataは別物になる。現在地(カレン
トディレクトリ)とは別の場所の.RDataを読み込みたいときには、適宜自分でload()を使う。
loadやsage.imageのヘルプを読もう。
> 以前の作業内容が反映されません
library()の結果は保存されない。保存されるのはRオブジェクト(関数、リスト、
データフレーム、行列など)のみ。
ls()とすると、前回保存したRオブジェクトが今もあるのかどうか確認できる。
最初はいろいろととまどうこともあるだろうけど、頑張れ小林君w
365 :
363 :2009/06/03(水) 11:36:14
364さんありがとうございます ls()で確認したところ以前保存した内容がオブジェクトとして保存されていることが 分かりました ところでこのオブジェクトをワークスペース上に呼び出すにはどのように したらよいのでしょうか? ヘルプを読んだ限りでは load("all.Rdata", .GlobalEnv) のように(ファイル名は自分のものに変えています)すれば出てくるのかと思ったのですが 以下にエラー load("普及率.Rdata", .○○○) : オブジェクト '.○○○' がありません のようなメッセージが出てしましました 他にload(○○○)load("○○○")などもためしてみましたがうまく行きません どこが間違っているのでしょうか? 何度もすいません
366 :
363 :2009/06/03(水) 11:39:13
自己解決しました そのまま名前を入れれば良かったのですね 364さん本当にありがとうございました
>>366 どういたしまして。
数時間とか作成に時間がかかるRオブジェクトは保存した方がよいけど、
外部ファイルを読み込んでから数秒、数十秒でできあがるRオブジェク
トはいちいち保存しないで、Rスクリプトの方を保存した方がメンテナ
ンス性が高いと思う。
Rのインターフェイスと直接的に対話的操作をするのではなく、テキスト
エディタを通じて、Rスクリプトの現在行、選択行、パラグラフをRに送
って実行する形態で作業した方が効率が上がると思うよ。Rと通信できる
テキストエディタはいくつかある。Windows版を使っていないので、いい
加減なことを言っているかもしれないけど、最近のWindows版Rは、Rとや
りとりする内蔵エディタが組み込まれていなかったけ?
368 :
132人目の素数さん :2009/06/04(木) 01:43:10
こんばんは。最近Rを使い始めた新参者です。自己解決しないので質問させていただきます。 ある動物に取り付け、gpsから得られたn×8列のデータ Time Date Longitude Latitude Altitude GES speed Ang 13:39:06.25 21/09/2007 141.980460 39.308037 -7.4 35.6 1.44 333.8 13:39:06.75 21/09/2007 141.980458 39.308032 -6.8 35.6 0.21 336.5 13:39:07.25 21/09/2007 141.980460 39.308031 -6.1 35.6 0.35 339.0 ・ ・ をx=read.table("C:x.txt",header=T) で取り込むことはできるのですが、各列の型が factor,factor,numeric,numeric,numeric,numeric,numeric,numeric となり、Timeの部分をnumericで取り込む事ができません。 colClassesを用いて、 x=read.table("C:x.txt",header=T,colClasses=c("numeric", + "factor","numeric","numeric","numeric","numeric","numeric","numeric")) にて問題解決を試みるも、 「以下にエラー scan(file, what, nmax, sep, dec, quote, skip, nlines, na.strings, : scan 関数は 'a real' を期待したのに、得られたのは '13:39:06.25' でした」 というエラー文が出てしまいます。 Timeの":"が問題だと思っています。Timeの列をnumericに取り込む事はできますでしょうか? もしできないのであれば、 ファイルxの第一列を取り出す→":"毎に分ける→13時以降の端数を小数点に直す→TimeとDate以降のデータをくっつける といった作業が必要なのでしょうか?それはあまりに手間がかかる気がしたので質問させて頂きました。
369 :
132人目の素数さん :2009/06/04(木) 03:04:35
S-PLUSの質問はどこですればいいんだ?
>>368 読み込み時/後に、POSIXlt をつかえばいんでね? help(ISOdate)
> old.digits <- getOption("digits.secs")
> options(digits.secs = 3)
> dateObj <- strptime("13:39:06.25 21/09/2007", "%H:%M:%OS %d/%m/%Y")
> dateObj
[1] "2007-09-21 13:39:06.25"
これで時間オブジェクトになるから後は煮るなり焼くなり。最後にオプション戻す
>options(digits.secs = old.digits)
>>368 > x <- read.table("test.dat",header=T,colClasses=c("character","character","numeric","numeric","numeric","numeric","numeric","numeric"))
> x
Time Date Longitude Latitude Altitude GES speed Ang
1 13:39:06.25 21/09/2007 141.9805 39.30804 -7.4 35.6 1.44 333.8
2 13:39:06.75 21/09/2007 141.9805 39.30803 -6.8 35.6 0.21 336.5
3 13:39:07.25 21/09/2007 141.9805 39.30803 -6.1 35.6 0.35 339.0
> options("digits.secs"=2)
> strptime(paste(x$Time,x$Date),"%H:%M:%OS %d/%m/%Y")
[1] "2007-09-21 13:39:06.25" "2007-09-21 13:39:06.75"
[3] "2007-09-21 13:39:07.25"
> cbind(DateTime=strptime(paste(x$Time,x$Date),"%H:%M:%OS %d/%m/%Y"),x[,-(1:2)])
DateTime Longitude Latitude Altitude GES speed Ang
1 2007-09-21 13:39:06.25 141.9805 39.30804 -7.4 35.6 1.44 333.8
2 2007-09-21 13:39:06.75 141.9805 39.30803 -6.8 35.6 0.21 336.5
3 2007-09-21 13:39:07.25 141.9805 39.30803 -6.1 35.6 0.35 339.0
Rにおける日付型の扱いを勉強しよう
Rでパラメータ設計とかMTS法(Mahalanobis Taguchi System)とか いう情報がネットにないのですが、 なぜなんでしょう? 特にMTS法はmahalanobis()関数 使って何とかならないものでしょうか? 出来る方やり方教えてください。(´・ω・`)
こんばんは、もしよければ教えて下さい。 データフレーム上の変数の値を、別途定義したベクトルの数値に 置き換えたいのですがどうにもうまくいきません。 for文でまわしてコピーするしかないのでしょうか?
>>374 x[ , 3] <- y
みたいではできない?
>>374 質問が抽象すぎて答えにくい。
> (dat <- data.frame(x=runif(5),y=LETTERS[1:5],stringsAsFactors=FALSE))
x y
1 0.9966249 A
2 0.3132333 B
3 0.6491857 C
4 0.7796462 D
5 0.3020311 E
> (z <- month.abb[1:5])
[1] "Jan" "Feb" "Mar" "Apr" "May"
> dat[c(1,3,4),2] <- z[c(1,3,4)]
> dat
x y
1 0.9966249 Jan
2 0.3132333 B
3 0.6491857 Mar
4 0.7796462 Apr
5 0.3020311 E
こういうこと?
377 :
374 :2009/06/24(水) 20:58:37
回答thx 自作関数で計算したベクトルをデータフレームに代入しようと してたんだけど、返値のベクトルをnumeric(0)で初期化してたのが まずかったみたい。 numeric(0)での初期化をやめたら375さん、376さんの方式で できました。 ありがとー。
378 :
132人目の素数さん :2009/06/25(木) 17:35:08
Rで、カッパ係数出すために色々数値入力して、library(psy)を読み込ませようとしたんだが、“「psy」というパッケージは存在しません”と表示された。 lkappaでカッパ係数簡単に計算したいんだが、library(psy)が読み込めないから、てで計算するしかないんですか?
>>378 psyパッケージをインストールしていないだけでは?
> RSiteSearch("kappa")
でカッパ係数を計算する関数がざくざくでてくる。あちこちのパッケージ作者が
自分で独自に実装しているみたいで、車輪の再発明の典型だな。
380 :
132人目の素数さん :2009/06/25(木) 18:49:04
381 :
132人目の素数さん :2009/06/26(金) 17:51:55
378さんに関連してですが、僕もpsy(?)を読み込ませたらパッケージが存在しないと表示されました。 それで379さんの書いたものを読み込ませサイトに接続したのですが、どうやってパッケージをインストールするのかわかりません
382 :
378 :2009/06/26(金) 18:17:50
>>381 試しにやってみたら、普通にインストールできるけど。
好みの問題かもしれないけど、管理者権限で実行した方が無難かも。
っていうか、ちょっと調べたり本を読めばすぐに分かるレベルの質問をしても相手にする人は少ないと思うよ。
スルーできていないのは私だけみたいだし。
> install.packages("psy",repos='
http://cran.md.tsukuba.ac.jp/ ')
install.packages("psy", repos = "
http://cran.md.tsukuba.ac.jp/ ") 中で警告がありました:
引数 'lib' が欠けています:/usr/local/lib/R/site-library を使います
URL '
http://cran.md.tsukuba.ac.jp/src/contrib/psy_0.7.tar.gz ' を試しています
Content type 'application/x-gzip' length 27221 bytes (26 Kb)
開かれた URL
==================================================
downloaded 26 Kb
* Installing *source* package ‘psy’ ...
[中略]
** building package indices ...
* DONE (psy)
383 :
379 :2009/06/26(金) 18:21:28
すまん。私は378じゃなくて379だった。
384 :
132人目の素数さん :2009/06/30(火) 22:44:25
こんなイメージのパッケージ(関数)ありませんか? 使用例: (連続変数である、一変量確率変数xの、AIC基準で最も当てはまりの良い分布を検索。 Fitting.Distribution( x , "continuouts" , "AIC") アウトプット例: RANK:1 NAME:Normal Distribution parameter:(mean=3.1 , sd=1.2 ) AIC:324 RANK:2 NAME:Log Normal Distribution parameter:(shape1=4.2 , shape2=2.3) AIC:411 ・・・・ ニーズありますよね?自作でも良いのでもしありましたらご紹介下さい。
最近になってRを使い始めたばかりなのですが、データフレームの操作が思うように できずに悩んでいます。 > d <- data.frame(rbind(c(1,2,3),c(4,5,6))) > d X1 X2 X3 1 1 2 3 2 4 5 6 これに対して、各行ごとにカラムの最小値を選んで X1 X2 X3 X4 1 1 2 3 1 2 4 5 6 4 のような結果を得たいのですが > d$X4 <- min(d$X1, d$X2, d$X3) だと > d X1 X2 X3 X4 1 1 2 3 1 2 4 5 6 1 のようになってしまいます。そうなる理由は分かったのですが、ではどうすれば 望みの結果が得られるのか、というところで詰まっております。 参照すべきドキュメントのポインタでもかまわないのでどなたかお教えいただけ ますでしょうか。
こらまた初々しい質問だな > d <- data.frame(rbind(c(1,2,3),c(4,5,6))) > cbind(d,X4=apply(d,1,min)) X1 X2 X3 X4 1 1 2 3 1 2 4 5 6 4 apply関数群を勉強してくれ
387 :
385 :2009/07/21(火) 23:03:51
>>386 なるほど、こんな関数があったのですね。
取り合えずhelp()を読んでみることにします。どうもありがとうございました。
ふつ〜pmin使うだろ
なんだかさ、9MB以上のベクトルを生成できないってどういうこと? memory.sizeで回避できるの? 教えてエロイ人。
>>388 は逃げたか。
>>390 9MBという判断はどうやって判断したの?
> x <- runif(10000000)
> save(x,file="tmp.gz")
> system("ls -lh tmp.gz")
-rw-r--r-- 1 hoge hoge 51M 2009-07-23 10:46 tmp.gz
runif(10000000)で51MBになったよ。
パッケージってRを起動するたびにインストール必要があるのですか? 時間がかかるのですが。。。
394 :
132人目の素数さん :2009/07/23(木) 22:02:21
>>391 dat <- scan( dat.csv , what=list(a="",b=0,c=0,d=0,e=0) , sep="," )
こんな読込みをした際に、エラーが発生しました。
エラーメッセージに、「9MB以上のベクトルは生成できません。」とありました。
>>394 scan()は日頃使わないから、外すかもしれんが、そもそもwhatの中身はそれでいいの?
If 'what' is a
list, it is assumed that the lines of the data file are
records each containing 'length(what)' items ('fields') and
the list components should have elements which are one of the
first six types listed or 'NULL'
ってヘルプには書いてあるけど。
1レコードが複数行とか特別の事情がない限りscan()を直接使わないで、read.csv()で十分では。
396 :
132人目の素数さん :2009/07/25(土) 00:21:19
Rを使って2次元数値地図GISデータから、建物形状(屋根はとりあえずフラット) のSTLデータを作成するために、建物形状のポリゴン(凹の場合もあり)の 三角形分割をしたいのだけど、gpclibのtriangulateで分割すると、 各節点からのx方向へのスキャン・ラインを使った、無駄な三角分割をする。 adsのtriangulateならそんなことないのだけど、ポリゴンによってはmemory not mappedで死んでしまう。 他に良いlibraryや手はない?
397 :
132人目の素数さん :2009/07/26(日) 03:51:14
16進数は0xffとかで表現出来るけど2進数や8進数は簡単にあつかえないのね?
Ubuntu 9.04だけど、Rmpiのインストールに失敗した。 libmpi not found. exiting... ということなので、どのパッケージか調べてみると $ apt-cache search libmpi |grep dev libmpich-mpd1.0-dev - mpich static libraries and development files libmpich-shmem1.0-dev - mpich static libraries and development files libmpich1.0-dev - mpich static libraries and development files 3種類もあった。どれを入れたらよいのか判断がつかないので、助言をお願いします。
399 :
132人目の素数さん :2009/08/16(日) 11:39:37
はじめてのロジスティック回帰、はじめてのRで突っかかりまくってます。 どうか手助けをお願いします。 glm()の前にtableで度数分布表を作ると度数0のマスがあってオッズ比がぶっ飛んでしまう変数が出てしまいます。 wikiとかですとサンプルを増やせ、デザインが悪いってことになるでしょうが、サンプルは現実的には増やせません。 そこでイェーツの補正みたいなことはglm()では出来ないでしょうか? 独立変数は2つ(仮にI,II)、それぞれ3つのカテゴリデータ(仮にA,B,C)です。IとIIの交互作用?といいますかjoint odds ratioを出したいのですが、 つまり最終的には、 IA:IIA OR=1.0(Reference) IA:IIB OR= IA:IIC OR= IB:IIA OR= . . IC:IIC OR= といった結果を得たいと考えております。 試しに x <- glm(Y ~ I+II+I:II,,,,) y <- glm(Y ~ I*II,,,,) をおこなったところ、出力される項目が異なります。 xだとIA:IIB, IA:IIC, IB:IIA, IC:IIAが出てきませんし、 yだとIA:IIAがreferenceにならないみたいです。 xの場合、IB,IC,IIB,IICはそれぞれIIAかIAで調整済みとなっているのでしょうか。 それともとても大きな勘違いをしています?。 長くなってすいませんがよろしくお願いします。
普通データを補正しないか
401 :
399 :2009/08/19(水) 11:01:11
有難うございます、とりあえず全ての分割表に0.5足してやってみています。 現在、前述のオッズ比の算出で手こずっています。Epitoolsとかいうパッケージを使えばIA:IIAをオッズ比1にして計算してくれるのですが、glmのオッズ比とは違う様子。
なにその捏造
>>399 大きく勘違いしてないか?
ロジスティック回帰なのに度数分布?
Rだと生データのままかけるんだけど。
それともやりたいのは対数線型モデル?
ちなみに対数線型モデルでも最尤法で解くんだから
0が出てきてもたくさんでなければ解ける。
404 :
399 :2009/08/20(木) 11:28:56
すいません、練習中なんで捏造気味なのは勘弁してください。 そもそもロジスティック回帰自体を良く分かっていないので自分でも常識的なことを間違えているんだろうなと思ってます データは、 >df ID 結果 要因A 要因B 001 1 0 1 002 0 0 0 003 0 0 0 004 1 1 2 005 1 2 2 . と全部で300件くらい。 GLM<-glm(結果~要因A+要因B,family=binomial(logit),data=df)としています。 ORはexp(coef(GLM))で出ると思うのですが、このORについて理解できていません。 (結果~要因A+要因B) 要因Aの"0"を基準にした要因Aの"1"と"2"のORと要因B"0"を基準にした要因Bの"1"と"2"のORだと思うのですが、 (結果~要因A*要因B) とすると要因A1:要因B1、要因A2:要因B1、要因A1:要因B2、要因A2:要因B2が何に対するORなのか、また、 要因A0:要因B1とか要因A0:要因B2とか要因A1:要因B0とかは何で出てこないのか。 (結果~要因A:要因B) とすると全ての組み合わせが出てくるが、一体なにを基準したORなのか。 あたりが分かっていません。 で、とりあえずepitoolsとかいうパッケージを使って分割表(3次のarray?)を作ってORを計算してみているところです。 最終的には要因Aと要因Bの単点での結果に対する影響はこれくらいだけど要因Aと要因Bが組み合わされると影響はこれくらいだよというのが言いたいです。 分かりにくくてすいません、こんがらがってきました。
>>404 交互作用の自由度はその例だと(3-1)x(3-1)=4なわけでだから4つしか出ません。
他の組み合わせ(たとえば要因A0:要因B1など)はすべて0と基準化されているということです。
同じ値を複数もつベクトル生成(c(2,2,2,2,2)のような)はどのようにやるのが効率が良いのでしょう? seqでbyを0にして作ろうとするとエラーになってしまいます。 for文を使って作るしかないのでしょうか?
>>407 ありがとうございます。たすかりました。
409 :
132人目の素数さん :2009/08/23(日) 03:43:29
Rで計量分析や時系列分析のパッケージを読み込む方法がよく分からないのですが どうしたらよいのでしょうか?
パッケージ選んで読み込むだけです ソフトの使い方程度で質問しないでください
411 :
132人目の素数さん :2009/08/24(月) 02:12:53
>>410 申し訳ありません。
初めてここ見たばかりですし、Rも最近始めたばかりの初心者だったもので。
もう少し自分でしっかり勉強してから出直します。
>>411 >>410 はスルーの方向で。ここは便所の落書きなので何を書き込んでもよいよ。
初心者の質問やいまさら人に聞けない質問も書き込んでもいい。ただし、その
質問に回答する人が現れるかかどうかは別問題という認識は必要。
回答が欲しい質問は、ここじゃなくてRjpwikiへ。質問をするときの注意事項をよ
く吟味してから書き込むこと。
>>403 > Rだと生データのままかけるんだけど。
ダウト。生データも使えるが正しい。
>>412 だから生データがあるのにわざわざ度数分布にする必要はないだろ。
415 :
132人目の素数さん :2009/09/02(水) 21:30:57
ちょいと質問。 変数の型が途中で変えられるのに非常に違和感を感じます。 C言語なんかでは不可能です。 関数が値渡しだからかのう??? 頭が整理されていないので、チンプンカンプンな質問になっていますが、 どなたかご説明いただけますか? x <- c(2,2,3,1,5) x <- factor(x) ↑numericがfactorに!
416 :
132人目の素数さん :2009/09/02(水) 22:19:50
>>415 Rは型安全じゃないし動的型だから。
違和感を感じるって言われても困るから。
>>415 別の変数を同じ変数名で上書きができると考えたらいいんじゃね?
x <- c(2,2,3,1,5)
y <- factor(x)
としたとき、xとyは別々の変数だけど、
x <- y
として、yをxで上書きできる。
y <- factor(x); x <- y
を1文にすると、
x <- factor(x)
となる。
>>415 が言っている論法だと、
> x <- c(2,2,3,1,5)
> x <- function(i){return(i+1)}
> class(x)
[1] "function"
↑numericがfunctionに!
と言っているのと大差がない。
419 :
418 :2009/09/03(木) 10:45:18
ちょっと訂正。変数の型の話をするときには、class()ではなくmode()を使うべきだった。 結果と結論は同じだけど。
>>415 ttp://www.okada.jp.org/RWebRef/R-lang.jp.v110.html これによると、Cソース上ではRのオブジェクトはSEXPRECへのポインタ*SEXP。
定義は、src/include/Rinternals.h にある、
SEXPREC {
SEXPREC_HEADER;
union {
struct primsxp_struct primsxp; (略)
} u;
} SEXPREC, *SEXP;
マクロSEXPREC_HEADERを追っていくと、全てのR上の変数をenumしている、
SEXPTYPE に行き着く。ココに変数のR上での型を入れてあるようだ。
Rの変数は全てオブジェクトらしいから、genericな型としてSEXPを使っている
のでは?generic型のやり取りになるから、全ての変数を入れ替え可能となる。
ちゃんと読んでないから知らんけど。
RってScheme上に実装されているんじゃなかったっけ? もしそうなら、Schemeの変数ってCのvoid *見たいなもんだから、型が変わるとかそもそも意味が無い。 (Schemeでは、値には型があるが変数には型は無い)
422 :
132人目の素数さん :2009/09/23(水) 22:55:36
423 :
422 :2009/09/23(水) 22:58:38
422です。すみません、自己解決しました^Q^;
時系列の移動平均の幅(たとえば日単位のデータで,N日移動平均のN)を最適化したいんですが,Rにそういう目的にあった関数はありますか? 最適化というのは,ホワイトノイズがよりホワイトノイズらしく(ガウシアン)なるようなNを求めたいということです.
425 :
132人目の素数さん :2009/10/11(日) 11:58:53
ソフトウェアの設計上、大規模データの取り扱いには限界があるような気がしてきた。 SASからの完全移行は無理だな・・・
426 :
132人目の素数さん :2009/10/12(月) 16:29:50
>>424 沢山のデータを平均した方がガウス分布に近づくに
決まってるやんか。
427 :
132人目の素数さん :2009/10/13(火) 02:07:49
s-plusはSAS並に大規模データを取り扱えるの?
Rでも64bit版なら大規模データでもサクサクです。 50Gでもサクサクです。
429 :
132人目の素数さん :2009/10/14(水) 23:40:16
クラスカルウォリスで有意差が出て、 引き続いてのシェッフェの多重比較で有意差がでなくなるのがわかりません
配列演算子?配列関数?である "[" の 動作が、クラスによって異るように見えます。 これも関数として定義されているからなのでしょうか? 具体的には、クラス"term"に対する"["に動作が予想外で戸惑っています。
431 :
132人目の素数さん :2009/10/15(木) 01:27:59
"["は総称関数で、文脈に従って(クラスによって)適切に 下請けの関数に渡されます。plot()やsummary()も同様。
レスありがとうございます。 なるほど総称関数になっているんですね。 では、総称関数"["の内容を見るにはどうすれば良いのでしょうか? 例えば、総称関数"plot"だったら、引数を与えずに plot と入力すれば中身が見えますよね? "["は [ と入力してもエラーになります。
433 :
KY :2009/10/23(金) 22:05:28
Rってすげぇ、 行列も計算も出来るじゃん! 俺のTI-89でも出来ないでもないけど 入力が('A`)超マンドクセ P.S., 変数削除するときの「本気ですか?」 ワロタwww
434 :
学生 :2009/10/24(土) 21:48:58
交通量 発生月 死者数 重傷者数 軽傷者数 15128 12 0 0 1 15128 6 1 0 0 10584 2 0 0 1 24352 5 0 0 4 15128 10 0 1 1 24352 1 1 0 1 10584 9 0 0 1 19742 3 0 1 3 Rを学んでいる学生です。例えばこのようなデータの場合、死者+重傷者の事故と軽傷者の事故を分けたいのですがどのようにRで解析すれば良いでしょうか?? 先生から出された宿題なんですが全くわからなくて…。見づらいと思いますがよろしくお願いします。
2chで聞いて答えを得ようとする人を「学生」とは呼びたくないな
>>434 >死者+重傷者の事故と軽傷者の事故を分けたい
問題が理解できません。「分ける」とは、どういう意味でしょうか?
どういう結果を得たら、「分かれた」と言えるのでしょうか?
R ではなく、手計算(手集計)を行うとしたら、どうすればいいのかわかっていますか?
437 :
学生 :2009/10/24(土) 23:43:32
すみません。 死者+重傷者を1軽傷者をー1という感じに分けたいんです。 どうにかなるものなのですかね??
438 :
学生 :2009/10/24(土) 23:46:15
返事ありがとうです。死者+重傷者を1軽傷者をー1にわけたいんですが可能なのでしょうか??
439 :
KY :2009/10/25(日) 04:35:41
split(x, 列名や条件式)でデータ・フレームを分割できるらすぃ
440 :
KY :2009/10/25(日) 04:57:47
しまった、勘違い データ・フレーム名がtrafficAccidentsなら trafficAccidents[c(3,4)] と trafficAccidents[c(3,5)] でいいんじゃね?
441 :
132人目の素数さん :2009/10/25(日) 23:40:03
リニアモデルを用いないで回帰分析するにはどうしたらいーかわかるひといますか?
442 :
132人目の素数さん :2009/10/26(月) 03:02:19
plotmeans()という関数を使うには gplots gdata gmodels gtools …の四つのパッケージをインストールする必要がある、と書かれています。 しかし、その四つを確実にインストールしているのに > plotmeans(w ~ g, data=mydata3) エラー: 関数 "plotmeans" を見つけることができませんでした というメッセージが出ます。 他に何かインストールしないといけないパッケージがあるんですか? 検索しても出てきません。
443 :
442 :2009/10/26(月) 03:13:39
自己解決しました インストールしてたんですけど読み込んでなかったです どうか忘れてください
今日からRを使おう! と思っているのですが A <- 1 を A=1 って書いたらスクリプトを公開するときに、恥ずかしいですか?
446 :
132人目の素数さん :2009/11/06(金) 21:56:20
ついでに質問 出力のところに出てくる [1] って、なんか意味あるんですか? 邪魔なんですけど。
>>445 「各言語の流儀にすら合わせる事が出来ない、柔軟性や学習意欲に欠けた人間です」と自己紹介することになるだけだから、大した事無いでしょ。
449 :
132人目の素数さん :2009/11/08(日) 09:44:59
じゃぁ plot(x,y, col='red') を plot(x,y, col <- 'red') と書けないのはなぜ?
>>449 <-はインスタンスを生成すると言う、明確なメッセージが有る。
お前さんの例は、インスタンスの属性の指定だから。
そこら辺を意識して書き分けられないのは、オブジェクト指向性が分かってないと言う事。
>>450 その <- っていうのは S の用法なんですかね?
Rを作るときにやっぱ=も使えるようにしちゃえーとか。
なんでもいいけど、Rっていうネーミングは、検索かけると違うものがいっぱいひっかかるので
ちょっと考えてほしかったぞw
452 :
132人目の素数さん :2009/11/15(日) 10:48:28
>>451 > なんでもいいけど、Rっていうネーミングは、検索かけると違うものがいっぱいひっかかるので
> ちょっと考えてほしかったぞw
本当に。
Rって、名前付けのセンスが悪いから、ずっと無視してきた。
けど、最近Scilabから移行するか思案中。
最近は、信号処理分野でも、統計っぽいことをすることが増えてきたので。
>>452 Rの残念なところは、Scilabと違って、
>A=1+2
と打っても
3
と答え出してくれないので、メモリ電卓代わりには使えないって事ですよねww
まぁそのまま 1+2 って打てばいいんですが。
scilabなら
A=1+2;
はエコーバックしない。
A=1+2
はエコーバックする、と区別がついていたので。
信号処理するなら、微分方程式とか状態変数とかラプラス変換とか出来ないと辛いんじゃないですか?
Rで出来ましたっけ?
454 :
132人目の素数さん :2009/11/16(月) 21:55:14
R用にMac Proを買おうと思ってます. optimを使って,目的変数を最大化(最小化)する計算を速くしたいのです. 4コアより8コアにしたほうが計算は速いですか? それとも,クロック数に依存するのでしょうか? 教えてください.
455 :
132人目の素数さん :2009/11/22(日) 04:30:58
456 :
132人目の素数さん :2009/11/22(日) 06:46:12
>>450 目的が言語なのか
処理なのか
中途半端ともいえる
457 :
450 :2009/11/22(日) 14:48:57
>>456 それには、反論出来んな・・・
「処理のために使ってんだから細かい事はどうでも良いだろう?」てのが普通なんだろうけどね。
458 :
132人目の素数さん :2009/11/26(木) 12:49:40
459 :
132人目の素数さん :2009/11/27(金) 19:23:28
Ubuntuの64ビット版にRをインスコしたんだけど、インスコされたRもちゃんと64ビット版になってるのかな? どうやったら確かめられる?
>>459 単精度と倍精度で誤差の出るような演算をしてみるとか?
461 :
132人目の素数さん :2009/11/30(月) 03:02:51
>>453 > (A <- 1 + 2)
[1] 3
462 :
132人目の素数さん :2009/11/30(月) 23:26:36
コンソール上の結果をWordにコピペすると文字がずれますよね? どうにかならないものでしょうか…
>>462 ペースト後、
WordのフォントをMS ゴシックに変えてみたらどうですか?
464 :
132人目の素数さん :2009/12/01(火) 12:54:53
>>463 ありがとうございます!
かなり悩んでいたのにあっさり解決してびっくりです。
465 :
132人目の素数さん :2009/12/01(火) 23:27:07
不良率7%の製品があり、この不良率に対する信頼度95%のとき 信頼区間の幅が0.06以下になるには何個抽出すればいいですか?
466 :
132人目の素数さん :2009/12/02(水) 22:32:20
初めまして。 初めての板だからさっきは別のスレに書いてしまいました。 SASユーザーです。最近は東大もSAS辞めてしまいましたが、 Rって使い勝手はどうですか?
小さいデータを扱うならSASより使い勝手が良いよ。
泣きたくなるくらい分からないツール
469 :
132人目の素数さん :2009/12/03(木) 11:26:47
情報を集めようとネット検索すると、アルファベット一文字なんで、 検索がまるで役に立たない検索結果ばかりで泣きそうになる・゚・(ノД`)・゚・
R 統計解析ソフト かな
472 :
132人目の素数さん :2009/12/05(土) 15:55:58
マジでもうちょっと区別しやすい名前の方がいいよなぁ CRAN-RとかCRANRなら、被らないと思うんでそっちに統一して欲しいです
473 :
132人目の素数さん :2009/12/07(月) 19:38:19
/Library/Frameworks/R.framework/Versions/2.6/Resources/RLib64 って何? 某インストーラーでlib=に指定されてたけど、そのまま試したら「そんなもの無い」って怒られた。 lib=指定をなくして再度インストーラー試したら rgument 'lib' is missing: using '$HOME/R/x86_64-pc-linux-gnu-library/2.8' ってなった。無事にインストールされたか心配。
474 :
132人目の素数さん :2009/12/08(火) 00:13:17
数字添え字にハッシュ作ったほうが普通に配列作るより早いんか?
>>473 > /Library/Frameworks/R.framework/Versions/2.6/Resources/RLib64
MacOSXだね
> rgument 'lib' is missing: using '$HOME/R/x86_64-pc-linux-gnu-library/2.8'
今度はLinux?
これでWindowsユーザなら笑ってしまう
legend関数に数式を入れても大丈夫なんでしょうか?
英字フォントの℃をlegendに入れようとして、ハタと困った。 > expression(C^o) expression(C^o) > expression(^oC) エラー: 予想外の '^' です ( "expression(^" の) superscriptの直前に文字が必要みたい
expression(degree*"C")
>>479 どこのどなたか存じ上げませんが、誠にありがとうございました。
解決しました。
481 :
132人目の素数さん :2010/01/01(金) 23:20:22
MacOX10.6.2でR version 2.10.1なのですが、フォーマット→フォントで コンソールのフォントを変えても、立ち上げ直すたびに貧弱なフォントに 戻ってしまいます。 どうすればよいのかご教授ください。
>>453 > 信号処理するなら、微分方程式とか状態変数とかラプラス変換とか出来ないと辛いんじゃないですか?
> Rで出来ましたっけ?
信号処理に使っているけど、Scilabに微分方程式とかラプラス変換をやらすことはないなあ。
最終的にデジタルシステムに落とすのが目的なので、
微分方程式を解くとかはあらかじめMapleとかでやれば十分。
って、Rでも odesolveライブラリ使えば、微分方程式解けるんじゃないの?
>>481 3年ぐらい前に初めてRをインストールした時、同じ症状だったなぁ。
あきらめて Terminal から R を呼んで使ってるよ。
>>481 何か初期設定ファイルとかあるんじゃないの。でも、コンソールのフォントにこだわりがあるなんて
さすがMacゆーざって感じですな。グラフィックディバイスのフォントは高品位である必要があるので、
とことんこだわるべきだが。
ちなみに当方は、MacOSX Leopardでemacs+essからRを使っているから、コンソールのフォントは、
emacsの方で設定できる。
485 :
132人目の素数さん :2010/01/14(木) 00:43:52
データベース板からこちらに来ました。 質問させてください。今130万×130万くらいの行列があります。 ただ要素は、ほとんどが0で一行に数字が入っているのは多分32までで、 負の数もありません。 これでオライリーの「集合知プログラミング」10章の非負値行列因子分解をしたいのですが、 あまりにも大きいのでとりあえずデータベース板に行きましたが、統計ソフトR という名前が出てきたので、ここに来ましたが、SparseMというのを使えばいいんでしょうか。 何も分からない素人なのでどこから手を付ければいいか教えてください
>>485 NMFNパッケージ
> library(NMFN) #NMFNパッケージの読み込み
> X <- matrix(1:12,3,4) #サンプルの行列を作成
> X
[,1] [,2] [,3] [,4]
[1,] 1 4 7 10
[2,] 2 5 8 11
[3,] 3 6 9 12
> ss <- nnmf(X,3) # 3 factors
Multiplicative Update Algorithm
Iter = 50 relative error = 0.001003956 diff = 52.33016 eucl dist = 0.0009181338
Iter = 100 relative error = 0.0008185111 diff = 0.01446467 eucl dist = 0.0006126808
Iter = 150 relative error = 0.0006704387 diff = 0.01154965 eucl dist = 0.0004113811
[snip]
Iter = 1000 relative error = 2.457965e-05 diff = 0.0004078737 eucl dist = 5.550067e-07
> sx <- nnmf(X,3,'nnmf_als') # 3 factors
Alternating Least Squares Algorithm
Iter = 50 relative error = 8.113168e-17 diff = 35.19087 eucl dist = 7.999543e-30
Execution finishes at iteration = 50
130万x130万行ができるかどうかは、あなたの環境次第かもしれない。
Windowsだとメモリの限界がすぐに来るかもしれないので、LinuxやMacOSXの方がよいかも。
487 :
132人目の素数さん :2010/01/14(木) 18:52:09
>>486 レスありがとうございます。そのパッケージが標準で付いてくるものなのか、
別途インストールが必要なものかググっても分からなかったのですが、
とりあえずRをubuntuにインストールしようとしましたが以下のエラーが出ました。
$ sudo apt-get install r-base
パッケージリストを読み込んでいます... 完了
依存関係ツリーを作成しています
状態情報を読み取っています... 完了
インストールすることができないパッケージがありました。おそらく、あり得
ない状況を要求したか、(不安定版ディストリビューションを使用しているの
であれば) 必要なパッケージがまだ作成されていなかったり Incoming から移
動されていないことが考えられます。
単純な操作を行っただけなので、このパッケージは単にインストールできない
可能性が高いです。そのため、このパッケージへのバグレポートを送ってくだ
さい。
以下の情報がこの問題を解決するために役立つかもしれません:
以下のパッケージには満たせない依存関係があります:
r-base: 依存: r-base-core (>= 2.10.1-2karmic0) しかし、インストールされようとしていません
依存: r-recommended (= 2.10.1-2karmic0) しかし、インストールされようとしていません
E: 壊れたパッケージ
Synapticも試しましたが、やはり依存関係でエラーが出ます。ubuntuは8.04なのですが、
これが古いということでしょうか。
>>487 Ubuntuは初めてですか、お客さん?
karmicはKarmic Koala (Ubuntu 9.10)のこと。で、あなたのUbuntuはHardy Heron。
apt-lineをkarmicに向けちゃったら、そらエラーになる。karmicって書いちゃったところを
hardyに書き直すとどうだい?
パッケージのインストールについて。 Linuxでは、追加パッケージを入れるとき、aptでインストールできるもの以外は、Rの中で、 > install.packages("NMFN") という感じでやるのだけど、インストール先が~/でよいならユーザ権限でRを起動しても良いけど、 私なら、 $ sudo R とroot権限でRを起動してパッケージを入れる。ネットワークインストールがいやなら、 自分でダウンロードしてきて、 $ sudo R CMD INSTALL hoge.tar.gz としてもよい(たぶん)。 あと、重要なことだけど、追加パッケージは、ソースの形でダウンロードされ、そのままコンパイルされる。 コンパイルできる環境や必要な外部ライブラリの開発ファイルをあらかじめ入れておく必要がある。 他のディストリビューションならほぼ問題ないが、Ubuntuは開発環境を自分で入れる必要があったと思う(たぶん)。
>>485 よくわからんのだが、130万×130万の行列って、1要素に8バイト使うと、
1.3e6*1.3e6*8/1e12=13テラになるんだが、それでいいのか?
皆さんレスありがとうございます。
>>488 すみませんレスに気が付かずVer.UPしてしまいました。その途中で画面に出てる文字でそのことに気が付きました。
>>489 とりあえずinstall.packages("NMFN") とやって見てエラーメッセージを読んで考えようと思ったら通ってしまったようです。
>>490 そうですね。もとの行列は0のところは何も書かないで、x行,y列の値をx,y,値とファイルに書いているだけなので
そんなにかさばらないのですが、非負値行列因子分解をする過程で、0以外の値の入る要素が増える可能性はあるだろうし、
考慮する必要がありますね… 13テラのHDは今準備できませんし。
>>491 その名もずばりSparseMなるパッケージもあるみたい。
使ったことが無いから、どんなものかは知らないけど。
493 :
132人目の素数さん :2010/01/16(土) 20:43:43
64bitRだと何Gのデータを扱えるの?
494 :
485 :2010/01/17(日) 06:38:11
確認させてください。NMFNは非負値行列因子分解を行うパッケージでいいんですよね。 でSparseMは疎行列をあつかうパッケージなのですよね。SparseMを使うと自分で 非負値行列因子分解のアルゴリズムを実装する必要があるというわけですよね。
流れを読まずに初心者質問。 wilcox.testで、「'x'は数値でなければなりません」になります。 データは、data<-read.csv("data.csv",header=TRUE) で読込み、 BとCの項目を、wilcox.test( data["B"],data["C"])で渡しています。 データ数はB,Cとも400程度で、5桁以下の整数値のみです。 どのように渡せばいいにでしょうか?
496 :
495 :2010/01/18(月) 09:52:21
DB接続にして、1つの数値項目だけをselectで抜き出してみました。 mode()でみると、listになっています。 as.numeric()を掛けると、(list)オブジェクトは'double'に変換できません。で as.integer()だと、(list)オブジェクトは'integer'に変換できません。になります。 数値と指定して読み込むには、どうしたらいいのでしょう?
>>495-496 自助努力をしているみたいなので、ヒントを差し上げよう。
> dat <- data.frame(B=1:5,C=6:10)
> dat
B C
1 1 6
2 2 7
3 3 8
4 4 9
5 5 10
> class(dat["B"])
[1] "data.frame"
> class(dat[,1])
[1] "integer"
> wilcox.test(dat[,1],dat[,2])
Wilcoxon rank sum test
data: dat[, 1] and dat[, 2]
W = 0, p-value = 0.007937
alternative hypothesis: true location shift is not equal to 0
>>497 有難う御座いました。
Vector?と思い込んでいましたが、
array?だったのですね。
助かりました。
499 :
132人目の素数さん :2010/01/18(月) 19:22:44
表のタイトルは下に表示したほうが良いと言われましたが、main引数 では上に表示されます…どうにか対処できるでしょうか? あとグラフのlabel内で、平方メートルの単位はm^2と表記するしか ないですよね…最近Rの不便さを感じます。
>>499 表のタイトルが下??図じゃなくて?Rで表を作ることもあるけど、出力してから
普通自分で編集しない?
Rのグラフィックを論文投稿用に使うとき、基本的にmainは使わない。
講義用とかならmainを使った方がよいけど。
それから、m^2は文字通り「m^2」と書くという意味?なぜ、superscriptを使わないの?
superscriptの例 > d2 <- 0.45 > plot(rnorm(100), main=bquote(Family ~ Gaussian ~ ";" ~ D^2 == .(d2)), ylab=expression(m^2))
502 :
132人目の素数さん :2010/01/18(月) 23:13:08
>>495 wilcox.test(data$B, data$C) で桶
どうしても ["B"] とかを使いたいなら、
wilcox.test(unlist(data["B"]), unlist(data["C"]))
理由は、
> class(dat["B"])
[1] "data.frame"
> class(dat$B])
[1] "integer"
だから
>>499 main 使わずに sub 使えばいいんじゃね
503 :
132人目の素数さん :2010/01/19(火) 16:20:04
504 :
132人目の素数さん :2010/01/26(火) 22:37:14
入力した変数一覧を確認するコマンドってなかったでしたっけ? どこに何をいれたか忘れてしまったためです。
505 :
132人目の素数さん :2010/01/27(水) 00:02:18
>>504 ls() じゃダメ? 変数の中身は見れないけど
>>504 essを使っているならess-rdired.elとか
他にも似たような機能を持つRのGUIアプリはいくつかあったような。
507 :
132人目の素数さん :2010/01/27(水) 19:56:05
508 :
132人目の素数さん :2010/01/29(金) 20:27:41
ヒストグラムつくって、densityかなんかで近似曲線をかいたとき、 その曲線を任意の範囲での積分(つまり、確率) ってできますか?
次スレは「R言語」で検索できるスレタイにしてくれ
>>509 コンピュータ言語じゃないという話もあるから 「GNU R」 で検索させてくれ
>>508 できる/できないの話ならできるんだろうけど、面倒くさいな。
任意の範囲をマウスで指定するならもっと面倒。
512 :
132人目の素数さん :2010/02/01(月) 17:44:58
>511 どうやってやるんですか?近似曲線を求めるとか? 任意の範囲はマウスではなく数字指定で十分です。
>>512 > plot(density(c(-20,rep(0,98),20)), xlim = c(-4,4))
> x <- density(c(-20,rep(0,98),20))
> str(x)
List of 7
$ x : num [1:512] -23.1 -23 -22.9 -22.8 -22.7 ...
$ y : num [1:512] 4.46e-05 5.77e-05 7.40e-05 9.45e-05 1.20e-04 ...
$ bw : num 1.02
$ n : int 100
$ call : language density.default(x = c(-20, rep(0, 98), 20))
$ data.name: chr "c(-20, rep(0, 98), 20)"
$ has.na : logi FALSE
- attr(*, "class")= chr "density"
上の例で言えば、矩形の面積を511個計算して合計すると全体、部分が欲しければ、
その部分の矩形の面積を合計。0.1刻みじゃ嫌だ!というなら、もっと細かくすればよい。
>>510 多くの場合、半角スペースを検索できない
515 :
132人目の素数さん :2010/02/02(火) 07:41:25
>>513 なるほど!density自体にそんな結果が含まれていたのですね。
plotで使ってただけだから気付かなかった。
ありがとうございます。大変助かりました。
xがUNIX時間になってるデータを、 横軸を年と月がざっくり判るような目盛でplotするにはどうすれば
>>516 example(format.Date)
example(axis.Date)
518 :
132人目の素数さん :2010/02/09(火) 22:03:33
これで、オプションの価格(ブラック・ショールズ理論)を 計算することができますか?
普通のプログラム言語で計算できなかったら、計算してる人は魔法でも使ってるに違いない
>>519 金融商品だけに魔法じゃなくて錬金術、とか。
>>518 「できる/できない」を問う質問は不毛だよ。
>>519 みたいな答えや「できます」という答えが返ってくるだけ。
522 :
132人目の素数さん :2010/02/15(月) 17:17:32
標準誤差って関数何だっけ?
524 :
132人目の素数さん :2010/02/17(水) 17:31:34
えっと、何を聞きたいのかな?
>>523 まじめに答えてみました。
標準誤差(standard error)seを求める.
標準誤差は,標本平均の標準偏差(standard deviation)のことを意味します.
中心極限定理: 平均μ,標準偏差σが決まる母集団からであれば,どんな分布をした母集団からでも,
大きさnの無作為標本に基づく標本平均は,nが十分に大きいとき,平均μ,標準偏差(標準誤差)σ/√nの正規分布に近づく.
中心極限定理より標本平均は,平均μ,標準偏差(標準誤差)sea=σ/√nの正規分布に従うことが分かります.
しかし,母平均, 母分散は不明なため次のように推定します.
母平均μの推定=標本平均m
母分散σの推定=不偏分散(unbiased variance)uv
不偏分散の公式より
> uv <- (m ? DATA$a)^2 ) / (length(DATA$a) - 1) #length(DATA$a)は標本数.
se=√(uv/n)より
> (se <- sqrt(uv/length(DATA$a)) #sqrt() は()内の正の平方根を計算する.sqrtは,square rootの略.
Rに用意された標準偏差を求めるsd()コマンド(関数)を用いて
> (se <- sd(DATA$a)/sqrt(length(DATA$a))
>>522 スレを立てた本人です。
済みません。
簡単に沈んでしまうものなんですね。
2ch初心者なもので。
今のところSTATAをいじっている余裕がないので
またいじり始めたら建て直すと思います。
ちなみに、
525=526で、
?の文字化けは-(マイナス)です。当たり前ですが。
>>526 ・スレッドのレス数が10以下
・レスが一週間書き込まれていない
二つの条件が満たされるとスレッドが沈むので
そうならないようにしておけば沈まないよ
529 :
132人目の素数さん :2010/02/18(木) 20:58:18
stats::arimaで利用されている、stats:::R_TSconvは、具体的にどのような処理を行っているのでしょうか?
529です。 また、どのような処理を行っているのかを調べる方法は、 CやFortranで書かれたプログラムを解析する以外にあるのでしょうか?
windows版は今度のバージョンからマルチコアと64bit対応かな?自分で作るしかないかなー。みんなで作ろう。2ch-R
532 :
132人目の素数さん :2010/02/23(火) 16:22:27
RでCSVファイルのある特定の列だけ読み取る方法はないでしょうか? 具体的なデータは、 「数字,10000文字の日本語文字列,数字,数字」 の4列で百万行程度あります。 解析したいのは、1列目と3列目です。 2列目の文字列の容量が大きすぎるため、 Rに単純には取りこめません。 そのため、2列目を除いて、1列目と3列目だけRに取り入れるいいアイデアが あったら、ご教授いただけないでしょうか? (私が考え付くのは、100行づつ取り入れる2行目を除去。これを一万回繰り返し、 最後に併合くらいです。) 普通だったら、 (1)awkやcutで一列だけ切り取る。 (2)切り出したものをRで解析する。 という手順でおこないたいのですが、 解析環境が「windows+R」のみで、 新しいソフトのインストール禁止。 データの取り出しも禁止。 という環境化なので、 Rですべてを処理するしかない状況です...。
Tinn-Rを入れてみたけど、R send:lineもR send:selectionも効かない。 R sed:lineでエディタの現在行を送ろうしてしても、Rguiの方が一行改行されるだけ。 Tinn-R 2.3.4.4 R 2.10.1 WinXP 何が足りないのだろう。Rprofile.siteもTinn-Rのメニューから作成・保存したのに。
a <- scan(file="filename",what=list(i1=0,NULL,i2=0,NULL),sep=",") でどう? 100万行までできるかわからんけど
>>532 awkならインストールしなくてもフラッシュメモリなどから読み込めばいいのでは。
あと、jscriptやvbscriptとかcmdとか。
Rってデータを分割して読み込む方法あるのかな。
538 :
532 :2010/02/24(水) 01:37:26
>>533 ,535,536,537
ありがとうございます。
>>536 javascriptを使う発想はなかったです。頑張ればブラウザでデータ整理できますね。
今後、もう、そのアイデアいざって時につかわさせていただきます(RなくてもOKだし)。
>>535 ベスト回答。この答えを待っていました! 美しいし短いし最高です。
scanもいじってたんですが、NULLまではたどりつけなくてあきらめてました。
先ほどまで、私は苦肉の策でC言語かよって感じに
file<-file("test.txt","r")
s<-0
d1<-0
d2<-0
i<-1
repeat{
s<-strsplit(readLines(f,1),",")
d1[i]<-as.numeric(s[[1]][1])
d2[i]<-as.numeric(s[[1]][3])
i<-i+1
}
とかしてましたが、今後は
>>535 方式で行こうと思います。
2chやっぱりすごいですね。ありがとうございました!
539 :
532 :2010/02/24(水) 02:58:53
>>535 535の方法で132万行×126列のデータを2列のみ3分程度でRに読み込めました。
ありがとうございました。
ある周期に依存するかもしれないカウントデータを扱っています 例えば、タネを撒いた時刻は出芽数に影響を与えるか、っていう感じです これって、どうにかRで扱えないでしょうか?
まさにRむき
>>540 Rを使う/使わない以前に、分析の原理・手法を検討するのが先。
bud~Poisson(mu)
log(bud)=alpha+beta*s(time,k)+e
とか、まずモデルを検討して、検討した結果、採用候補の分析手法を
実行するRライブラリ/コマンドが存在するかどうか尋ねられたらいかがでしょうか。
カウントデータつながりで、 方向の関数としてのカウントデータって なんかいい解析法ないですかね?
bud~Poisson(mu) 、っていう答えははずしてるように思う
>>543 適当にロジスティック関数を使えばいいのではないかと
>>534 Tinn-Rの1.19.4.7ならOK。
Tinn-R:2.x以降はWindowsでは、動かなかった。
原因は不明・・。
誰か知ってたら教えて・・。
547 :
132人目の素数さん :2010/03/04(木) 15:41:22
Rの図ってPPTに貼ると汚く見える気がするんだけど、それって私だけ?
>>547 汚くしようと思えば汚くできるし、綺麗にしようと思えば綺麗になる。そんなのあなた次第。
画像のサイズ(解像度)をコントロールする方法と、ベクタ画像とラスタ画像の違いを勉強しなさい
冷たいレスだな
質問が質問だからな
>>548 ありがとうございます!
ラスタ画像って、ちょっと難しい言葉だけど、ググッテ見たらなんとなく意味が分かりました!
ラスタ画像はコピペッした後で、画像サイズをコントロールすると、ピクセルとピクセルの間が補完されてしまうから、汚くなっちゃうんですね!
今度から、ベクタ画像とラスタ画像の違いを勉強して使います!!
それにしても、ベクタ画像とラスタ画像って、まさに僕が知りたい情報だったんですが、548さんは、どうして僕の気持ちが分かったのでしょうか?
まさにエスパーですね。今度から548さんをエスパーイシヤ人と呼ばせてください!
2チャンネルはすごいですね!
感動した!!
552 :
132人目の素数さん :2010/03/09(火) 08:42:49
?
自演レスして楽しいかなあw
554 :
548 :2010/03/10(水) 13:40:02
俺も当事者じゃなかったら、
>>551 は自演だと思っていたと思う。
>>551 そこまで調べたなら、次はベクタ画像を出力するRのグラフィックディバイス
例えば、ps(), pdf(), svg(), cairo_pdf(), cairo_ps()あたりを使って一度ファイルに
出力して、emfに変換すればよいと思うよ。
svg(), cairo_pdf(), cairo_ps()は私の環境では日本語不可でした。
図に日本語イラネだろw
pythonスレで数式処理で一番なのはRと言われてRを調べ始まったのですが どのぐらいすごいのでしょうか
>>556 普通数万から10万円超えるような統計ソフトと同等かそれ以上の機能を持ちながら無料
これ最強
文字列 "a_5" から変数 a[5] の値を返す関数みたいなものはないのでしょうか
>>556 あなたはだまされています。もしくは数式処理と統計処理を混同しています。
>>558 そんな便利な関数はない。自分で書く。
下記にヒントをしるす
> a <- month.abb
> b <- "a_5"
> s <- strsplit(b,'_')
> s
[[1]]
[1] "a" "5"
> eval(parse(text=paste(s[[1]][1],'[',s[[1]][2],']')))
[1] "May"
<- -> = で何か違いはあるのでしょうか?
左折、右折、横断歩道
>>560 オレも
M = read.csv( .... )
って書きたいんだが、周りの無言の圧力により
M <- read.csv( .... )
って、仕方なく書いている。
>>562 Rのパッケージャによっては、
M = read.csv( .... )
を使う人もいるし、また、R関連本(洋書)を見れば、わりと"="派な人がいる。
私自身は、関数のオプションと区別するためや
"=="と混同しないように、代入には <- を使う。
>>559 internはないけどevalはあるのですね
ありがとうございました
いや、 <- は x<-2 が x < -2 と混乱するので好ましくない習慣だと思う。
右辺に数字が来るとしたら<-は間違って使ってるんじゃないの?
568 :
132人目の素数さん :2010/03/13(土) 23:55:11
>>558 The R Tips第2版(オーム社)より
> for (i in 1:10) {
+ assign(paste("x", i, sep=""), i) # 変数xiにiを代入
+ }
> x1
[1] 1
> x2
[1] 2
Rをschemeに変換するコンパイラみたいなものはないのでしょうか
<file> [,20100101] [,20100101] [,user1] 0 1 [,user2] 2 3 > x <- read.table(file) > x X..20100101. X..20100101..1 [,user1] 0 1 [,user2] 2 3 列のヘッダに付いてる X.. は何なのでしょう。。。
数値からは始められないので、適当にprefixをつけたら、X. になった。
[,ab] [,cd] [,ef] [,gh] [user1,] 0 1 3 2 [user2,] 2 3 4 0 ↓ X..ab. X..cd. X..ef. X..gh. [user1,] 0 1 3 2 [user2,] 2 3 4 0 うーむ。。。 [R.app GUI 1.31 (5537) i386-apple-darwin9.8.0] なんですが、 列のヘッダはこれが標準なんでしょうか。。。
よー、Macユーザー。そのバージョン番号は、R の Mac用GUI アプリのver.な。 Rコンソールウィンドーの一番上に出てくるのが、本当の R のバージョン。 でな、ピリオドも同じ。特殊?文字や数値からは始められない。 プログラム言語なので、そういうモノ。
そーゆーことか。どもっす。
575 :
132人目の素数さん :2010/03/20(土) 12:28:05
Rでjordan標準形を求めることはできますか?
576 :
132人目の素数さん :2010/03/21(日) 15:50:52
具体的に何をしたいか書いてー
>>576 正にjordan標準形を求めたいのです。
>>577 library(rms)
> (a <- diag(1:3))
[,1] [,2] [,3]
[1,] 1 0 0
[2,] 0 2 0
[3,] 0 0 3
> -matinv(a.inv1, 2:3, negate=FALSE)
[,1] [,2] [,3]
[1,] 1 0.0 0.0000000
[2,] 0 0.5 0.0000000
[3,] 0 0.0 0.3333333
attr(,"rank")
[1] 2
attr(,"swept")
[1] TRUE TRUE TRUE
579 :
132人目の素数さん :2010/03/23(火) 12:51:05
580 :
132人目の素数さん :2010/03/23(火) 12:53:13
581 :
578 :2010/03/23(火) 13:11:35
訂正。
>>578 のままではエラーになる。
> library(rms)
> example(matinv)
>>580 こんなところにRjpwikiのurlを貼らないで。
やっぱりRはIBMやSPSSからの流入で数学系以外の人(社会調査や統計分析とか)が多いのが実情なんでしょうか。
>>582 IBM?
individual-based modelぐらいしか思いつかない。
Rは、商用パッケージと違ってユーザ登録がないので、
ユーザの専門分野構成比について、誰も客観的な答えが出せない。
584 :
580 :2010/03/24(水) 11:49:59
>>581 なんで?
Spamが来るから?
このサイト、書きこみにはパスワードがかかってるよね?
585 :
132人目の素数さん :2010/03/24(水) 23:49:21
すみません。 平均600、標準偏差100の、対数正規分布に従う乱数を発生するにはどうすればよいのでしょうか? > log( rlnorm( 100 , meanlog=600 , sdlog=100 ) )では、Infが多発してしまいます。
585です。 > log( rlnorm( 100 , meanlog=600 , sdlog=100 ) )では意味合いがまったく違いますね。 アドバイスお待ちしています。
rlnorm()という答えが出ているのに、そこから先に進めないの? > mean(log(rlnorm(100,600,100)),trim=1000) [1] 618.7184 > mad(log(rlnorm(100,600,100))) [1] 94.40666
588 :
132人目の素数さん :2010/03/25(木) 01:09:28
>>587 ご回答ありがとうございます。
しかし、log(rlnorm(100,600,100))だと、
対数をとった結果が、平均600、標準偏差が100の正規分布に従うという意味ですよね?
私が求めたいのは、平均600、標準偏差が100に従う対数正規分布そのものです。
(やりたいことは、所得の乱数を発生させて各種シミュレーションを行うことです。
所得の分布に対数正規分布を仮定しています。)
引き続きアドバイスをお願いします。
>>588 とりあえず「データが対数正規分布で、もとの値での平均値を問題」をキーワードに検索してみれば?
590 :
132人目の素数さん :2010/03/27(土) 19:05:10
>>585 普通の正規分布に従う乱数の発生はできますか?
591 :
132人目の素数さん :2010/03/29(月) 00:20:50
588です。
レスありがとうございます。
検索したページを読んでみましたが・・・
γ(600)=exp(μ+σ^2/2)、
δ(100)=μ^2・{exp(σ^2)-1}
として、uとσを求めればよいのでしょうか?…良くわかりません。
>>590 rnorm(100,600,100) です。
これぐらいならば問題なく大丈夫です。
今までpythonで数値計算してきたのですが Rに乗り換えるといいことありますか? pythonで出来なくてRにできることって何ですか?
>>592 ない。「Cにできなくてpythonにできること」がないのと同様。
>>592 Pythonで Rモジュールを利用することが出来るとぐぐったことがある。
Pythonを使っているのなら、調べてみてはいかが?
(Pythonは使ったことがないので、未確認ですが・・)
統計学は文系の使うものだという感じがするので嫌い。 コンサルやMBA(笑)みたいな胡散臭い奴らが学んでるし。 理工系のエンジニアとしては彼らと一緒にされたくないので 統計学を学ぶのには嫌悪感がある。
>>595 統計学は文系の使うものだという感じがするので嫌い。
ん?
>>595 は単に文系レベルの統計学しか知らないという事では?
エントロピーさえも知らないんだろうね
>>595 は他スレでも同じことを書いていたね。
きっと、コンピューターはインテリが使うものだという感じがするので嫌い。
とか言うんだろう。
599 :
132人目の素数さん :2010/04/09(金) 21:29:04
>>595 理系の研究者で統計を知らない奴はいないよ
どの学科でも実験すると温度というのは必須の条件だと思うが、 温度の定義を知ってるかい?
>>600 「物理屋」を自称していても、意外と統計力学の基礎がすっぽり
抜け落ちてる人がいるんだよな。熱力でストップしてるの。
603 :
132人目の素数さん :2010/04/10(土) 10:22:02
温度を温度計の目盛りだけで使える分野もあるからそれでもいいけど、 物理系なら統計力学は必須だろ
誤差を出すために必要な知識だし、 統計を知らない物理屋はいないだろう。
>>595 には測度論についての感想も聞いてみたい。
視聴率の調査結果も異様に精度を期待してる奴が多いな
いまどき文系でさえ、マトモな人はカイ二乗検定くらい使いこなしてますが
文系はドモルガンの法則を理解してない 名前は知らなくていいけど、概念を説明しても納得しない AかつBでなければならない、という法律に違反している状態は AとBの少なくとも一方が否定されれば満たされるのに、 AでなくかつBでない状態だと信じてそのまま判決を出す裁判官は実在する
例を挙げるなら a < -3 AND 5 > a を否定するときは -3 <= a OR a <= 5 っていう話
間違えた a < -3 AND 5 < a です orz
さらに間違えた 例を挙げるなら a < -3 OR 5 < a を否定するときは -3 <= a AND a <= 5 っていう話 です 吊ってくる
615 :
132人目の素数さん :2010/04/18(日) 16:22:31
うわあ
裁判官笑
マーフィーの法則 バカと喧嘩はするな、はたからはどっちがバカだか分らない。
He who fights with baka should look to it that he himself does not become a baka.
>>588 delta2 <- function(x,y){
return(log(y/exp(2*log(x)) + 1))
}
myu <- function(x,y){
return(-0.5 * log(y/exp(2*log(x)) +1) + log(x) )
}
xに600、yに100^2を放り込んでみたら?
>>588 一応答え書いておくと
> mean(rlnorm(100000,6.38323,0.1655264))
[1] 599.9213
> sd(rlnorm(1000000,6.38323,0.1655264))
[1] 99.98724
RってiPhoneではどんなに頑張っても使う方法ないよね?
iPhoneことはそんなに詳しくないけどVNCで母艦の画面を写してればiPhoneでも使えてるんじゃない?
>>623 ん。エクセルの対抗馬としてRはないかな。
エクセルの対抗馬としては、グーグルドキュメントや、
オープンオフィス、Macの表計算ソフトかな。
Rではなく、アクセスなら、データベースソフトとしての対抗馬になったかしらん。
>>623 想像するに、その質問者は、
先生から、(統計解析を勉強するなら)今からエクセルをやっても確実に負ける。Rでなら勝てると言われました。
この()の部分を聞き流したのではないだろうか。
ExcelでR自由自在 という本を読めば?
628 :
132人目の素数さん :2010/05/07(金) 00:11:17
hoge
>>629 RjWikiの最初に書かれている方法だけあって、Unixでteeを使う方法は素晴らしいですね。
しかし、レクチャーに使いたいと思っていて、プラットフォームに関係のない解決方法、
なるべくならRアプリケーションそのものから解決したいんです。
outputtext <- capture.output(
コマンド1
コマンド2
・・・
コマンドx
)
sink("outputtext.txt")
outputtext
sink()
こんな感じで実行ファイルを作ってみたんですが、エラーになります。
良い方法ありますか?
sinkだと、表が崩れるという問題は残りますが。
>>629 Rを適当なインターフェイスを通じて使わずに直接使うからでは?
例えばテキストエディタから使っていれば、Rの実行画面をそのまま
テキストファイルとして保存すればコンソールの出力を丸ごと保存
できるよ。
>>631 Unix系、私はMacなんでターミナルからですが、上記のR|tee R.logで上手くいきました。
テキストエディタというと思いつくのは、Emacs + ESSですが、
それだと講義でEmacsの使い方まで教えないといけないかなと思い躊躇しています。
でも他には方法がなさそうですね。
まぁ、もともと個人的には、結果を見たいところでわざとエラーで止めて、
logファイルを見る使い方はしていなかったので、ちょっと考えてみます。
>>632 テキストエディタは例えばの話で、RのGUIインターフェイスはいろいろとある。
マルチプラットフォームならJGRとか。今、JGRを試してみたけど、保存のアイコンをクリックしたら、
コンソールの出力を丸ごとファイルに保存できたよ(保存するときに、全部、コマンドだけ、出力だけ
を選ぶみたい)。
他のインターフェイスでも同様に出来るのではないだろうか。
Windows版のR GUIも実は保存というメニューがあるかも(手元にないので確認できないが)。
>>633 いろいろありがとうございました。
かなりバカな質問をしていたようです。
MacのGUIインターフェイスのCarbon Emacsでもちゃんと保存のメニューがありました。
コンソールの容量も大きいようで(限界は不明ですが)、長い出力にも十分耐えられそうです。
別のソフトのレクチャーをR用に直すのがRの独学に一番良いかと思いやっています。
またお世話になると思いますが宜しくお願い致します。
>>634 コンソールの保存を手動(マウス操作)ではなく、GUIインターフェイスのR上から、
コマンドで行う方法はあるのでしょうか?
今考えているのは、Rのコマンドのみを記録したcommand.Rファイルにlogの保存の指定も
出来るように書ければ、便利かと思ったのですが。
command.Rファイルを実行すれば、自動的にlog.txtが作成される。
>>635 コンソールの出力を保存する方法は、ターミナルソフトウェアの仕事であって、
Rの仕事ではないから、R自体にそのようなことをさせることは出来ないし、
させるべきでもないと思う。そもそも標準入力、標準出力の概念や「小さなツールを
組み合わせて大きな仕事する」哲学に反する。標準出力に出力された後は、
OS依存のアクセサリーツールが、ファイルに保存するなりなんなり対応すればよい。
また、GUIにこだわらず、単に「Rのコマンドのみを記録したcommand.Rファイルにlogの保存
の指定も出来る」のみの要件であれば、R CMD BATCH command.R log.txtで足りる。
>>636 なるほど。とても参考になります。
ちなみにMac OSXのターミナルからは、
command.Rを用意すれば、
R --save <command.R >commandlog.txt
でcommandlog.txtにログを全てとることができました。
--saveと--no-saveの違いを理解していませんが。
もうちょっと考えてみます。
素人丸出しでスミマセンが、 combn(5,2)を実行すると 組み合わせが全て表示されます。 この組み合わせを表示するのではなく、 5C2の計算結果の10を得るためにはどうしたらいいですか?
ncol(combn(5,2)) でどうよ?
641 :
132人目の素数さん :2010/05/13(木) 12:15:31
Rでペアワイズ型コンジョイント分析を行いたいのだが、 プログラムを書くために参考となる文献や書籍はありませんかね?
Rで英語で質疑応答がさかんなコミュはどこですか?
644 :
132人目の素数さん :2010/05/14(金) 23:11:22
データフレームにおいて、 要素の大きさの順番ではなく要素自体をソートして返す orderのコマンドってありますか? 行列・配列・リストでいうところの(x[order(x[,1]),])のようなかんじで
645 :
636 :2010/05/15(土) 05:21:42
Rを使う環境構築でずっと悩んでいます。 皆さんはどのようにRを使っていますか? 基本として、 コマンドのみを記したcommand.Rファイルと その実行結果を表示するテキストファイルを出力するように使いたいのです。 出来れば一度設定してしまえば、MacやPCのようなプラットフォームに関係なくできる環境を 構築したいと思っています。 皆さんの作業環境を教えて頂ければと思います。 上記は講義で、一般的な作業環境構築について話したいので質問しています。 個人的には、矩形処理が得意なEmacs上で、ESSを使っていますが、Rの講義で Emacsの説明までするのは、やりすぎかなと思っています。
>>645 >>636 を書いたのは私だけど、なりすましされたのは初めてだ。
電卓として使うならlittlerを使う。本格的に使うならESS+Sweaveを使う。
講義に関しては、Emacsの講義をすでに履修している状態でもなければ、
Emacsを使うのはやり過ぎだろう。Emacsに限らず、Rに用意された
インターフェイス以外を使うのは混乱の元だと思うが。Windows/MacOSXなら
そのままGUIを、Linuxなら適当なターミナルソフトを使うべきだと思う。
>>642 このスレを埋めた後、R言語で検索できるようになったら
648 :
635 :2010/05/16(日) 10:20:20
649 :
132人目の素数さん :2010/05/17(月) 20:56:02
13桁6行の数字の羅列を、read.fortranを使ってデータフレームにしています。 6行のうち1、3、5行目だけを使いたいのですが、指定の仕方が分かりません。 他の関数も使わないと指定はできないのでしょうか?
>>650 困っている度が低そうで答える気に余りならないが、他の関数が"["だったら、
許容範囲なのかな?
> ff <- tempfile()
> cat(file=ff,paste(1:6,"234567890123",sep=""),sep="\n")
> system(paste("cat",ff))
1234567890123
2234567890123
3234567890123
4234567890123
5234567890123
6234567890123
> read.fortran(ff, c("F5","F5","I3"))[c(1,3,5),]
V1 V2 V3
1 12345 67890 123
3 32345 67890 123
5 52345 67890 123
652 :
635 :2010/06/03(木) 03:40:13
Rで通し番号がついた変数を上手く扱う方法を教えて下さい。 例えば a1, a2, a3, a4 ・・・a10という名前の変数がるときに、 この変数に入った値を一度に表示する方法。 Stataなら >display a* でOK forを使って通し番号のついた変数を自動生成する。 Rではこれでいいですか? for (i in 1:10){assign(paste("a",i,sep=""),代入する値)} 代入する値に通し番号がついた変数名(例b1,b2..)を使う場合にはどうなりますか? for (i in 1:10){assign(paste("day",i,sep=""),b`i'} Stataなら上記のように`i'で添字を操作できます。 解決方法としては、grep()など、正規表現が使える関数を利用することも 考えましたが、上手く扱えません。 例 >apropos("a*") #これでは変数名の羅列で変数の中身がでてきません。 >for (i in 1:10) cat(get(paste("a", i, sep="")),"\n") この方法ではなんとか目的は達成できますが、もっと簡単な方法はないでしょうか? 宜しくお願い致します。
>>652 >>653 の言うとおりlistを使えばよいと思う。
> a <- lapply(1:10,function(x){runif(2)})
> a[[1]]
[1] 0.02104710 0.54894781
> a[[2]]
[1] 0.3112974 0.5590326
> a[[10]]
[1] 0.1201111 0.7264913
という乱数が2個ずつ入った変数があったとしたら、
> a
[[1]]
[1] 0.02104710 0.54894781
[[2]]
[1] 0.3112974 0.5590326
[[3]]
[1] 0.09237121 0.45438306
[中略]
[[10]]
[1] 0.1201111 0.7264913
で中身が表示される。通し番号 1, 2, 3, ... 10の代わりに、[[1]], [[2]], [[3]],...,[[10]]
と考えればOKじゃないかな。
655 :
635 :2010/06/03(木) 13:56:58
>>653 >>654 オーなーるほど。
早速の回答ありがとうございました。
変数の扱い方自体の考え方が違うんですね。
しかし、Rは懐が深いですね。
656 :
635 :2010/06/03(木) 17:17:10
いろいろ勉強になります。 少し疑問があるのですが、 リストとデータフレームの違いがイマイチ良く理解できていません。 データフレームはいわゆるエクセルなどのスプレッドシート上のデータ群と 理解しています。 リストはデータフレームよりもフレキシブルなんでしょうか? リストからデータフレームに変換するのには次の方法で良いのでしょうか? >x <- list(4:6,7:9,10:12) >x <-data.frame(x) 宜しくお願い致します。
>>656 そのあたりの超入門的なことは、入門書を一読してから尋ねた方がいいと思う。
購入がいやならオンラインでもいろいろとある。
> リストからデータフレームに変換するのには次の方法で良いのでしょうか?
こんなことを聞かれても、欲しいデータフレームがどういうものか見せてくれないと、
答えようがないし、list構造の概念を理解していないからこそ発せられる質問だと思うよ。
> as.data.frame(x)
X4.6 X7.9 X10.12
1 4 7 10
2 5 8 11
3 6 9 12
> as.data.frame(unlist(x))
unlist(x)
1 4
2 5
3 6
4 7
5 8
6 9
7 10
8 11
9 12
どっちもデータフレームだよ。
658 :
635 :2010/06/03(木) 18:58:57
>>657 オンラインのものは、- 統計解析ソフトR の備忘録PDF -とか、Rjpwikiとかは一通り読みました。
まだちゃんとは読んでいませんが、英語のR本も何冊か持っています。
今のところの体感認識では、
データフレームは、Rデータエディタで表示すると、きれいにスプレッドシートとして表示される。
リストは、そうでない。
また、リストはリストそのものも要素に扱えるということから、
雑多なデータを寄せ集めて表現しているものという認識で間違っていないでしょうか?
つまり、
データフレーム形式では、行・列の2次元でデータに意味付けされている。
リストでは、そういう縛りがない。
いろいろ丁寧に教えていただき勉強になっています。
ありがとうございます。
659 :
635 :2010/06/03(木) 19:18:16
今Rで試してみましたが、 リストはデータフレームそのものも要素になりうるんですね。 リストにデータフレームを1から5まで読み込んで、ひとつのデータフレームにまとめたいときに >newdataframe<-as.data.frame(original_list) >newdataframe<-merge(original_list[[1:5]]) 上記二つの方法が出来ることがわかりました。 二番目の方法では、列データがまるまる重複するデータは自動的に削除されるので 二番目の方法の方が扱いやすいのかと理解しています。 他の方法などあれば、また教えて下さい。
660 :
635 :2010/06/04(金) 12:34:01
自己レスです。 merge()関数は二つのデータフレームしか結合できないようなので、 >newdataframe<-original_list[[1]] >for(i in 2:5){newdataframe <- merge(newdataframe, original_list[[i]])} が正しいようでした。
Rでのgrepの使い方がいまいちわからん
662 :
132人目の素数さん :2010/06/11(金) 03:23:47
age
すみません。助けてください。 下記コマンドでエクセルからデータを取り込みました。 library(foreign) db <- read.xls("sample.xls", sheet=1) すると str(db) 'data.frame': 35 obs. of 38 variables: $ NO : int 1 2 3 4 5 6 7 8 9 10 ... $ ID : Factor w/ 35 levels "AA001","AB002",..: 29.. で確かめると要素が文字列(つまりchr)であることが期待された変数IDは、 上記のように因子レベルになっています。 数値を因子に直す方法は、factor(変数名,levels=,labels=c("",""))を使うことは分かったのですが、 因子を文字列に直す方法が分かりません。 宜しくお願い致します。
665 :
132人目の素数さん :2010/06/15(火) 00:07:36
R+freeBSD環境でインストールしているのですが、 2時間掛かっているのに終わりません。 こんなに時間が掛かるものなのでしょうか?
>>665 そんなのマシンによるだろ。
依存ライブラリのコンパイルもしているだろうから、
依存ライブラリが予め入っていないなら+αの時間がかかるし
667 :
132人目の素数さん :2010/06/16(水) 02:40:13
データフレーム(の中身)をsshで別のマシンに送りたいのですが、どうすればいいでしょうか?
> c1<-rnorm(1024);
> x<-data.frame(c1=c1);
> write.csv(x,file="/tmp/data.csv");
> system("cat /tmp/data.csv | ssh
[email protected] \"command line\"");
[email protected] 's password:
>
これで一応転送は出来てるのですが、最初のwrite.csvをやらないようにしたい
のですが、やり方がわかりません。出力先をパイプにすればいいのでしょうか?
どうかよろしくお願いします。
668 :
132人目の素数さん :2010/06/16(水) 02:55:12
> sshOut<-pipe('ssh
[email protected] \"command line\" &> /tmp/sshOut', open='w');
とかやると出来そうな雰囲気もあるのですが、パイプに出力をうまくかけません。
流れを読まずに質問 rownameが付いたデータがあります。 as.vectorでもas.listでもfalseになるので型がよく判りませんが、 数値の入った一次元配列?です。 データが1以下の行は使わないので、0とかNAにしましたが、 そのあとの計算で邪魔になってします。 データが1以下の行を削除するには、どうしたらいいのでしょうか? 調べても判らなかったので、ここを見ろ、でも有り難いです。
よくわからないけど > a <- (1:4)/2 > a [1] 0.5 1.0 1.5 2.0 > a[a>1] [1] 1.5 2.0 こういうこと?
671 :
669 :2010/06/17(木) 21:34:05
672 :
132人目の素数さん :2010/06/23(水) 14:34:40
質問です。ご回答お願いします。 10行2列のマトリックスAと20行2列のマトリックスBを使って 回帰分析を行いたいんですが、エラーが出ます。 具体的には、A,Bの一列目を従属変数(濃度)、二列目を独立変数(スペクトル)にしてます。 関数lmを使ってAで作った検量線に、関数predictを使ってBの二列目を代入したい (スペクトルの値から濃度を予測したい)と考えているのですが、 「データ数が違う」という旨の警告が出てできません。 分かりにくいかもしれませんが、宜しくお願いします。
>>672 Rjpwikiの方が親切に回答してもらえると思うぞ。
> A <- data.frame(matrix(1:20,nrow=10))
> head(A)
X1 X2
1 1 11
2 2 12
3 3 13
4 4 14
5 5 15
6 6 16
> B <- data.frame(matrix(runif(40),nrow=20))
> head(B)
X1 X2
1 0.6353921 0.2679418
2 0.2917369 0.3124313
3 0.2857031 0.2795522
4 0.1951349 0.4510532
5 0.4426567 0.4894139
6 0.5981174 0.3142484
> predict(lm(X1~X2,A),B)
1 2 3 4 5 6 7 8
-9.732058 -9.687569 -9.720448 -9.548947 -9.510586 -9.685752 -9.718648 -9.481105
9 10 11 12 13 14 15 16
-9.477939 -9.628372 -9.697301 -9.711742 -9.717192 -9.791366 -9.910725 -9.650475
17 18 19 20
-9.903119 -9.638157 -9.547609 -9.051490
ってこと?具体的なコード(再現性のあるサンプルコード)を示してくれないと、
なんで出来ないのかこちらには分からない。
674 :
132人目の素数さん :2010/07/04(日) 01:35:42
nnet使ってるけど、これって出力層のユニット数は変更できないの?
fit <- lm(Y ~ X1 + X2 + X3, df) anova(fit) で出てくるF値は、t値の二乗になっていないですよね。 このF値は統計学的にどういう意味のあるF値なんですか。
676 :
名無しさん@そうだ選挙に行こう :2010/07/11(日) 20:31:09
XPSP3でソースコードからshlibをenableにしてRをインストールする方法を知ってる人いませんか? Rtoolsを利用して通常のtar→makeまではできたのですが、UNIXでの./configure --enable-R-shlib のようなコマンドがわからず困っています…
SAS>>SASS>R>えくせろ
SPSSだろ
>>677 少なくともあなたがコンピュータに無縁なのはよく分かった
こんばんは、質問させてください。 factanalを使って1因子の因子分析をしているのですが、初期解を求めようとすると 「以下にエラー solve.default(cv) : システムは数値的に特異です:条件数の逆数 = 2.13584e-17 」 というエラーが出てしまいます。 prcompを使うと正しく計算されます。 しかし「前回課題で使用したデータ」を「factanalを使って1因子分析」するのが条件なので、 関数やデータをいじるわけにもいきません。 どうしたら解決できるのでしょうか。
psppというのもあるよ。
>>681 Rに比べると怪しげに見える。
よく知らんけど、Rはgccと同じくらいのレベルで標準を確立したりしていないか?
>>680 それってなぜエラーが出るか考えさせる問題ってことはないよね?
>>681 まだプロジェクトが続いていたのか。
昔試したときには、GUI化される前のSPSS Baseのコピーって
かんじだったけど。公式ページを見たら、psppもGUI化されたみたいだな。
685 :
132人目の素数さん :2010/07/17(土) 20:20:27
which関数の条件文ってAND条件使えないの? 例えば、 x<-1:10 which(x<5&&x>2) ってしたら integer(0) ってでてくる
&は1個でいい
>>685 &と&&は意味が違うので注意って入門書に書いていなかった?
>>684 >GUI化
結構いい線いってると思うけど、本物と比べると出来ないことが多すぎて
代わりにはなりませんな。
batファイルからperlを呼び出して前化工して、 次にRscriptを呼び出して結果を出力して、 後始末して、ということをしてるけど、 batファイルというのがどうも不格好なので、 rファイルだけで全部やらせられない?
データフレームの特定の列をfactorにしたい場合って、こう書くしかないのかな? data$colulmn <- as.factor( data$column );
691 :
132人目の素数さん :2010/08/05(木) 22:22:59
age
sage
693 :
132人目の素数さん :2010/08/20(金) 00:47:26
R 2.11.1 を使っています。 group value a 10 a 12 a 14 a 17 b 23 b 23 b 26 e 1 e 4 e 9 e 9 こんなテーブルを read.csv で読み込んだとき、group の a, b, e という ベクトルを取得するにはどうすれば良いでしょうか。
694 :
693 :2010/08/20(金) 05:47:15
unique 関数でできました。
>>694 5時間も悩んだのか、ごくろうさま。
想像する趣旨からすると、levels()を知りたかったのだろうけど。
696 :
132人目の素数さん :2010/08/27(金) 16:14:40
x <- sample(c(0,1),1000,rep=TRUE) のように、0と1がランダムに入ったベクトルxがあるとして このxに0がいくつ「連続して」現れるかカウントする 簡単な方法はありますか? 最大の連続数だけでも構いません。
697 :
696 :2010/08/27(金) 16:29:02
ちょっとひねくれた方法を思いつきました。 x <- sample(c(0,1),1000,rep=TRUE) xstr <- paste(x,collapse="") res <- drop(sapply(strsplit(xstr,"1"), nchar)) print(res) もっと素直なやり方があってもよさそうですが…。
>>696 unlist(lapply(unlist(strsplit(paste(x,collapse=""),"1+")),nchar))
# 最大値のみ
max(unlist(lapply(unlist(strsplit(paste(x,collapse=""),"1+")),nchar)))
>>698 なるほど〜。strsplitは正規表現使えたんですね。
それだと空文字列が入らないので
>>697 よりよさそうです。
正規表現を真っ向から使うならこれもアリですね。
attr(gregexpr("0+",paste(x,collapse=""))[[1]],"match.length")
あれからfilterとかでもやろうとしましたが断念しました。
けっこうありがちなシチュエーションだからRの標準機能で
素直に処理ができそうな気がしたんですが。
700 :
698 :2010/08/29(日) 00:59:01
>>699 attr(..., "match.length") いいですね。勉強になります。
標準機能になくても、自力でなんとかなればいいんじゃないでしょうか? (Rの世界では)
せっかくなので、関数化してみました
count_elm <- function (x) {
string <- paste(x, collapse="")
elm <- as.character(sort(unique(x)))
tmp <- as.list(NULL)
for (i in elm) {
tmp <- c(tmp, list(attr(gregexpr(paste(i, "+", collapse="", sep=""), string)[[1]], "match.length")))
}
names(tmp) <- elm
return(tmp)
}
# test
x <- sample(0:4, 1000, replace=T)
y <- count_elm(x)
sum(unlist(y)) # >> 1000、確認OK
y$`0` # 0の連続回数
y[[1]] # 同上
unlist(lapply(count_elm(x), max)) #各要素の最大値
Rのコンソールに大量のデータや出力結果が表示されるのを、 一画面毎に停止させるような(読んだら何かのキー入力で次の一画面表示) コマンドってありますか?
702 :
ほげ :2010/09/04(土) 16:48:13
{ print("hoge") 2 * 3 } [1] "hoge" [1] 6 となるが,ブロックの返り値は最後の表現式ではないのだろうか? 何故,print("hoge")まで,このブロックの返り値になるのだろうか?
ブロックと関数の区別がついていないとか
そもそも返値を理解してない。 [1] "hoge" はprint("hoge")の返値じゃないし。
>>704 > fuga <- print("hoge")
[1] "hoge"
> fuga
[1] "hoge"
であることを考えると、[1] "hoge"は戻り値でもあるので、
コンソールに出力される[1] "hoge"と戻り値の[1] "hoge"
を区別して説明しないと、聞いてる方は混乱するね。