です.簡単なデータ解析から非常に高度・専門的な統計解析まで,さま
ざまな解析が出来る優れたソフトです.またRはSやSplusに操作環境な
どが良く似ており, Sで動作するものはRでもほとんど(90%以上)変更な
しに動作します. = 統計解析フリーソフト R 【第2章】 =
002 名前:
「The R Project」
http://www.r-project.org/
「CRAN」(日本ミラーサイト・R本体はここから手に入ります)
http://cran.md.tsukuba.ac.jp/
◆日本語ドキュメント
「R の日本語文章 (pdf 版)」
http://buran.u-gakugei.ac.jp/~mori/LEARN/R/
「R-Tips PDF版」
http://cse.naro.affrc.go.jp/takezawa/r-tips.pdf
003 名前:
「RjpWiki」
http://www.okada.jp.org/RWiki/
「Rによる統計処理」
http://aoki2.si.gunma-u.ac.jp/R/
「統計処理ソフトウェアRについてのTips」
http://phi.ypu.jp/swtips/R.html
「R-Tips」
http://cse.naro.affrc.go.jp/takezawa/r-tips/r2.html
005 名前:
http://datamining.tama.ac.jp/~yama/R/
「Rの使い方」
http://web.sfc.keio.ac.jp/~watanabe/r.htm
「関数一覧(青木先生)」
http://aoki2.si.gunma-u.ac.jp/R/
「R on Windows ~統計モデル 00~」
http://plaza.umin.ac.jp/~takeshou/R/stat.html
「統計言語 R の講義」
http://genome.ag.saga
「R on Windows ~統計モデル 00~」
http://web.sfc.keio.ac.jp/~kogure/soft/r/r.html
「R でプログラミング:データの一括処理とグラフ描き」
http://takenaka-akio.cool.ne.jp/doc/r_auto/index.html
006 名前:
「JIN'S PAGE」
http://www1.doshisha.ac.jp/~mjin/R/
011 名前:
個人的には使うのが礼儀だと思うのですが・・・・
012 名前:
条件分岐のときは使うけど、最後の行で返すときは使わない方です。
return文使わないようにするとオブジェクト指向してる気分になれるので。
それに、
f <- function(x) x^2
みたいに一行で定義が済むときはわざわざ書きたくないですよね。
Rの言語仕様はかなりルーズだけど、そこが好きです。
013 名前:
??そうですか?
027 名前:
章って論語にありそうだよね
関数定義少なし仁、みたいな
017 名前:
私はRODBC使ってますが.
018 名前:
1.
範囲選択
2.
read.delim("clipboard")
019 名前:
データが大きいと・・・.
021 名前:
csvで保存、もあしくは、メモリ増設
正直なところ、excelからRにデータを移すっていう機会がどういうときにあるのかが理解できない。
022 名前:
Excel で保存したデータを解析するよう依頼され、何かの事情で断れないとき。
常々、理解力不足を自覚していませんか?
023 名前:
自覚してる。
024 名前:
何やってんだよ?
025 名前:
026 名前:
028 名前:
kwsk!
029 名前:
サイドバーで検索できるのかな?
032 名前:
033 名前:
034 名前:
035 名前:
036 名前:
037 名前:
マニアックな操作感覚とか?
038 名前:
GUIとCUI
039 名前:
38の言うとおり操作性が違うのでコマンド入力を嫌う人にも勧めない。
040 名前:
ちまちま読みつつExercisesを解いていってみよう。
041 名前:
どのパッケージをインストールすればよいのでしょうか。
RSMらしき名前のが、見つからないのですが。
042 名前:
Rで、Excelのようなスプレッドシートを画面に表示するには、
何と入力すればよいのですか?
043 名前:
edit()
044 名前:
すでに存在するデータを操作するならfix()の方がいい。
でもこれらはデータの修正のみで表計算ソフトのように
式を入力したりできるわけではない。
046 名前:
で入門書をあさってたら、ヨサゲなのを3っつほど見つけたんですけど、
どんなモンなんでしょ?読まれた方いらっしゃいます?
『データ解析環境「R」―定番フリーソフトの基本操作からグラフィックス、統計解析まで』
『フレッシュマンから大学院生までのデータ解析・R言語』
『はじめてのS‐PLUS/R言語プログラミング―例題で学ぶS‐PLUS/R言語の基本』
047 名前:
「The R Book」 と 「The R Tips」 でよかろう。高いが払う価値はある。
「工学のためのデータサイエンス入門―フリーな統計環境Rを用いたデータ解析」もオススメ
『データ解析環境「R」―定番フリーソフトの基本操作からグラフィックス、統計解析まで』
ほんのさわり。プログラム脳があるなら応用可。
『フレッシュマンから大学院生までのデータ解析・R言語』
確か読み難くて立ち読みでパスした
『はじめてのS‐PLUS/R言語プログラミング―例題で学ぶS‐PLUS/R言語の基本』
わかり易そうな例題がゴロゴロあるが、応用が効かない話が多い。
048 名前:
うは。こんなに早くレスポンスいだたけるとは思ってなかったス。サンクス。
やっぱり「The R Book」 、 「The R Tips」が一番なのか…
どちらも『入門部』と『応用部』と言う感じの構成になってるみたいですが、
どちらがより初心者向け、つまり教科書的ですかね?
049 名前:
なんとなく始めてみたけど、難しいソフトですね。本当にGNUのプロジェクトなんですか?
かなり、初心者に対して敷居が高いように思われます。EMACSのLIPS位キツいかも。
ざっといじっただけなので、これから慣れるかもしれませんが、とっつきにくいです。
わざわざ、こんなソフト使うよりEXCELを使う方が遥かに生産的ですね。
本当はこのGNU
Rプロジェクトって何がしたいのでしょうかね?
050 名前:
GNU系のプロジェクトと言うことと、ソフト操作の難易度には何の相関性も無いと思われるが…
051 名前:
入門だけならThe R BookだがTipsの方が研究なり仕事なりに応用が効く話が多い。
>>048
どうせ釣りだろうがsum()しか使わないならExcelにしとけ
052 名前:
どもです。
なるほど、即戦力として利用したいときにはTipsの方で、
じっくり基礎からと言う時にはBookの方という感じですか。
有り難うございます。
053 名前:
俺も取っ掛かりはpdfをダウンロードした。
偏っていない良い文献だと思う。
054 名前:
『データ解析環境「R」』を読んでもダメ?
これ読みながらざっといじっただけでも使えるようになると思いますが。
055 名前:
一番最初はそれでよいと思う。R Tipsはわかりにくいと批判があったので
『データ解析環境「R」』を書いたと筆者が行っている
056 名前:
『データ解析環境「R」』+R Tipsのセットってことでおk?
057 名前:
『データ解析環境「R」』はプログラミング経験がある人には立ち読みレベル。
058 名前:
教えてください。
例えば
x <- matrix(c(1,5,4,1),2,2)
などとすれば、xを行列として扱えますが、(det(x)など計算できる)
####"hoge.dat"
1 4
5 1
####
のようなデータを、 d <- read.table("hoge.dat")などと読ませて
行列として扱うにはどうすればよいでしょうか
059 名前:
d <- read.table("hoge.dat")
as.matrix(d)
で出来ました。
最初に試して出来なかったように思い込んでいたのですが、
そのときは手順を間違えていたようです。
061 名前:
2006/10/16(月) 17:58:45
ANOVAをRを使って実行したいのですが、どのような式を入力したら良いか教えていただけませんか。
ネットで探し回ったのですが、これといって有力な情報にたどり着くことが出来ませんでした。
よろしくお願いします。
062 名前:
http://mat.isc.chubu.ac.jp/R/tech.html
なんかどう?
063 名前:
064 名前:
http://cse.naro.affrc.go.jp/takezawa/r-tips/r/74.html#05
065 名前:
目的変数が、0~1の連続変数で、
説明変数が、連続変数やカテゴリ変数のモデルをつくりたいと思っています。
目的変数が0と1のカテゴリ変数の場合は、glm(ロジスティック回帰)でモデル化が出来ると思うのですが、
0.2や0.8等も含む連続変数の場合は、どの関数を使えばいいのでしょうか?
066 名前:
その0~1という変数が比率であるなら
逆正弦変換(角変換)して普通に回帰すればいいのでは?
角変換は
http://aoki2.si.gunma-u.ac.jp/Yogoshu/33.html
を参照。
067 名前:
レスありがとうございます。
目的変数は、0~1の確率を表す連続変数です。
比率と言えば比率なのですが、少し違う気もしています。
0~0.5は0、0.5~1は1としてロジスティック回帰をする方法も思いついたのですが、
これでは情報を捨ててしまっている気がして、もう少し上手い手法があるのではと思い質問させて頂きました。
角変換というのも始めて知りました。勉強させていただきます。
068 名前:
0と1が出てこないならばロジット変換かプロビット変換をして
回帰という方法もあります。
プロビット変換は同じく青木先生のページに説明がありますね。
http://aoki2.si.gunma-u.ac.jp/Yogoshu/130.html
ロジット変換はここを見つけました。他にもあるでしょう。
http://datamining.jp/vocabular/yougo.htm#66
どちらも0や1が出てくるならなんらかの補正が必要です。
069 名前:
ロジット変換はロジスティック回帰のリンク関数と同じですから
同じようにしたいというのならこちらが親和性が高いです。
070 名前:
ロジスティック回帰の目的変数は確率あるいは比率ではないんでしょうか?
確率が0.5を超えれば「あり」、超えなければ「なし」等と判断することによって
目的変数が2値変数の場合に「使える」のではないのでしょうか。
073 名前:
Rで小数のデータにロジスティック回帰をかけると警告が出ますね。
元々二項分布を前提にしているわけですから小数のデータは
おかしいわけですが、一応出る出力は何をしているのか分かりません。
071 名前:
Rwaveとwaveletsというライブラリがあることまでは分かりましたが,みたい現象をどうやって解析すればいいのか分かりません……
Rは,統計ソフトだけど,ウェーブレットを使用してよいのでしょうか??
他によいソフトがありますか??
072 名前:
RGuiのConsole窓に拡張子rのスクリプトアイコンをドラッグすると途中経過の表示がないのでめっちゃ速いです。手間とお金をかけずにこの速さを
超えたい。
075 名前:
やっぱRじゃないとねぇ・・・とか、Rサイコーとか
言ってる椰子らに限って仕事できねぇんだよな、まったく。
って、言っている漏れも窓際だがorz
無難にSPSSとか使っているやつがスターだったりするからな。
うらやまP!
076 名前:
077 名前:
仕事できない
ビンボー
・・・そんなあなたにお勧めします。最高のRを!!(;。;)
078 名前:
079 名前:
だからSPSSには手が出ない。
080 名前:
081 名前:
でも、えせ分析屋が大量発生させることに功をなした。
085 名前:
大学でSPSSをやろうと言うのなら確かに似非になるが。
086 名前:
見ていて笑えるぜ!
088 名前:
うちの分野だと1顧客で1億近いけどSPSSで十分やってます。
必要に応じてJMPとRも使いつつ。
>>80-81
SPSSのどこらへんが玩具なのかな。
不満はあるけど、玩具とまでは思ってなかったので。
>>079
2行目で何を言いたいのかよく分からん。
噛み砕いて教えてくれるとうれしい。
>>079
それは面白そうだね。
どこで見られるのか教えてくない?
>>079
それはやってみれば分かるでしょ。
089 名前:
> それはやってみれば分かるでしょ。
やってみても、違いが出ることが分かるだけで、精度が違うかどうかの返答になっていない。
082 名前:
MATLABからRに乗り換えようか検討しています
google code
で
Wilcoxon Matched-Pair Signed-Rank Test
と検索すると
cとoctaveのコードしかひっかかりません
google codeはRを無視してるのでしょうか?
083 名前:
「R Wilcoxon Signed-Rank Test」
と「R」を追記するだけでも結果が随分かわりますね.
084 名前:
ググレカスじゃなくてCRAN Searchでヒットしたが
http://finzi.psych.upenn.edu/cgi-bin/namazu.cgi?query=Wilcoxon+Signed-Rank&max=100&result=normal&sort=score&idxname=functions&idxname=docs&idxname=Rhelp02a
087 名前:
基準化してから投入する場合ではモデルの精度に違いが出ますか?
090 名前:
finmetricsを読み込んででDowJones30の分析をしているんだけど、いくつかの銘柄で
Daily Closing Pricesが実際の(YahooのUS financeで確認)と合わないんだけど
多分 stock splitの関係のような気はしてるんだけど
誰か教えて下さい・・・
091 名前:
それじゃあまず、>>089の言うところの
「精度」の意味を明確にしてくれ。
たとえばそれがR^2のことならば、やっぱりやってみればわかること。
汎化性のことを言っているのならCross-Validationでもしてみればいい。
R^2もCross-Validationもわからんようならこの本を一読することをお勧めします。
http://www.amazon.co.jp/gp/product/4274066142/
意外といい本よ、これ。
093 名前:
R^2やCross-Validationっていってみたかっただけとちゃうんかいと小一時間。。。
097 名前:
データファイルとして
身長体重性別
15655男
18974男
16945女
というdata.datというファイルがあります.これを読み込んでessからアクセスしようとすると以下のようになります.
> df <-
read.table("f:/home/usr/Rstudy/data.dat",header=T)
> df
身長 体重 性別
1 156 55 男
2 189 74 男
3 169 45 女
> df$身長
NULL
.emacsには
(require 'ess-site)
(setq ess-pre-run-hook
'((lambda () (setq S-directory default-directory)
(setq default-process-coding-system '(shift_jis .
shift_jis))
としてあります.Rのバージョンは2.3.1,MeadowのバージョンはM-x versionするとGNU Emacs
22.0.50.1と出ます.ESSのバージョンは5.3.1です.たすけて~
098 名前:
099 名前:
お気の毒だけど、emacs-21.3-0vl7+ESSだと問題ないよ。
> df.1 <- read.table("data.dat",header=T)
> df.1
身長 体重 性別
1 156 55 男
2 189 74 男
3 169 45 女
> df.1$身長
[1] 156 189 169
>
dfは関数の名前とかぶるので変数名にしない方がいいよ。
100 名前:
Rtermですでに文字化けしてませんか。よく紹介されている「setq ess-pre-run-hook...」をやめて、以下に書き換えで如何。
(add-hook 'ess-post-run-hook (function (lambda ()
(set-buffer-process-coding-system 'shift_jis 'shift_jis))))
103 名前:
>dfは関数の名前とかぶるので変数名にしない方がいいよ。
これでした.かぶらない変数名を選んでやったらイケマシタ.ありがとうございます.
104 名前:
どういたしまして。
ところで、Rって多重比較検定が弱い気がしてきた。SPSSにある検定方法ぐらいは
用意しておいてくれよぉ。シェッフェとかライアンとかゲイムスーハウエルとか。
105 名前:
ここに
http://aoki2.si.gunma-u.ac.jp/R/index.html
シェッフェとライアンはあるな。
ゲイムス-ハウエルは流石にないな。
107 名前:
フリーソフトに何でもかんでも期待するほうが間違っている。
だいたいSPSSの価格を知っているのか?
それをふまえていればそんな台詞は吐けないと思うが。
むしろタダでここまでの機能を使えることに感謝すべきだろう。
しかもプログラム組めば無限に機能を拡張できるし。
108 名前:
コメントありがと。もちろん、自分で関数書いているよ。
青木先生のところはパクッて書き直しているのは内緒だけどね。
# 後ろめたいのでCRANには投稿できないし、公開もできない。
109 名前:
青木先生にお世話になるのは普通ですね。自分で使う分には下敷きにして改良しようが、
無問題でしょう。(先生もそのつもりで公開してくれていると思うし。)
それにしても自分で書いてるんだったら愚痴る必要はなかったと思うね。
ユーザのための発言だとしてもゲイムス-ハウエルほどマイナーな方法まで
上げることはなかったと思う。SPSSにはよく入ってるよな。SASにはないと思うけど。
114 名前:
2006/12/14(木) 01:27:29
http://jasp.ism.ac.jp/kinou2sg/list.html#R
120 名前:
何を入れたらいいかわかる人よろしくお願いします
configure: WARNING: you cannot build info or html versions of the R
manuals
configure: WARNING: I could not determine a browser
123 名前:
1行目: makeinfo
2行目: firefox mozilla netscape galeon kfmclient opera gnome-moz-remote
open
のどれか。
openはMacOS Xのためだろう。
126 名前:
texinfoとfirefox入れたら全部消えたよ
ありがとう
いい人だな
128 名前:
解かせたりできますか?
131 名前:
ただ直接求められないだけ。
132 名前:
微分^^
http://cse.naro.affrc.go.jp/takezawa/r-tips/r/38.html
連立方程式^^
http://cse.naro.affrc.go.jp/takezawa/r-tips/r/20.html
135 名前:
見しました。
帰無仮説、対立仮説と言う言葉が出てこなく残念!
うちの大学の先生のコアセッション用の本の書き出しが
『統計学は数学である。』
となっており、困っています。
136 名前:
卒論で忙しいのは分かるが一旦寝ろw
137 名前:
138 名前:
確かに出てこないな。自明だからじゃないか?
140 名前:
有意水準もない。
p値はあるけど…
TeXでやっているから索引があってもいいのに…
141 名前:
142 名前:
それってギャグで言ってるのか?
そうでなきゃ>>140に
禿同
139 名前:
gccは問題ないのに、あれがないこれがないで進まない
readline入ってるのにないといわれる
147 名前:
12月24日の午後9時から翌25日の午前3時までの6時間は
1年間で最もセックスをする人の多い「性の6時間」です。
貴方の知り合いや友人ももれなくセックスをしています。
普段はあどけない顔して世間話してるあの娘もセックスをしています。
貴方が片想いしているあの綺麗な女性もセックスをしています。
貴方にもし年頃の娘さんや姉・妹がいて、いま家にいないのでしたら間違いなくセックスしてます。
貴方と別れたあの娘も貴方がその娘にやってきたことを別の男にやられています。
貴方の将来の恋人や結婚する相手は、いま違う男のいちもつでヒィヒィ言っています。
148 名前:
149 名前:
150 名前:
↓の中に例が載ってるよ.ダメなら↓で紹介されている本に解説があるよ.
http://cwoweb2.bai.ne.jp/~jgb11101/files/log.html
155 名前:
Meadowにhelp文章を表示させる方法はわかりますか?
(Windowsだと別のヘルプ用のフレームが開いてしまいます。)
157 名前:
Winodwsは周囲にないので試せないけど、ダメ元で
M-x ess-help ENTERキー
(Help on) ヘルプ表示させたいコマンド名
をやってみて。essユーザはhelp()の代わりにess-help-modeを便利に使うよ。
ess-helpコマンドはRプロセスが動いていないと使えないよ。
160 名前:
Meadowの設定の問題じゃないの?
手元ではデフォルトで大丈夫だし。
161 名前:
Meadowでの設定は
(setq inferior-R-program-name
"c:/Program Files/R/R-2.4.1/bin/Rterm.exe")
(require 'ess-site)
以外に何をおこなってますか?
よかったら教えてください。
162 名前:
(setq inferior-R-program-name
"c:/Program Files/R/R-2.4.1/bin/Rterm.exe")
だったかな。
もしかして新しいフレームが出てくるって、同じウィンドウが2分割されて、下側にhelpが出てくるってことをいってんの?
それとも新しいウィンドウが開いちゃうってことをいってんの?
163 名前:
新しいフレームというのは,WindowsでESSからではなく,普通にRを起動する
と,RGuiが開きますよね。そのR Consoleでhelp()したときに起動するフレー
ムのことです。
ちなみに当方のessはversion5.3.3です。
164 名前:
WITH_ATLAS=yes とすると
...
...
mkdir ../../../../library/grDevices/libs
というところでビルドが止まってしまいます.
atlas は
WITH_OPTIMIZED_FLAGS=yes
WITH_STATICLIB=yes
して作ってあるのですが...
どなたか解決法をご存知ではありませんでしょうか?
165 名前:
プログラム落ちてないですかね?
ご存知の方教えてください。
166 名前:
意味不明です。データの相関行列とは違うのですね?
167 名前:
168 名前:
正規分布って言ってる時点で、パラメータとしての相関係数は与えなくちゃ駄目なんじゃないのか?
標本データからの推定値を求めたいのなら話はわかるが、、、。
169 名前:
自分も理解不足でした。
標本のデータがありまして、多変量正規分布と多変量楕円分布のパラメータをそれぞれ求めろといわれたのですが、
いまいちやり方がわかりません。
Rをつかってやるというのがいまいちわからなくて・・・
ヒントだけでもいいので教えてください。
170 名前:
ar関数を使ってVARモデルを求めましたが、(こんな感じです。(USe.ar<-ar(df,order.max=2,aic=F))
モデル推計値とサンプルの値が全然フィットしません。
どのような問題点が考えられるでしょうか?
171 名前:
データが少ないか定常でないか。
172 名前:
パラメータの推定量を調べろ。式のないものは計算できん。
Rは式を計算しているに過ぎんからな。
173 名前:
初歩的な質問ですみませんが、わかる方ご教授のほうをお願いいたします。
データがテキストの改行区切りで2000行あり、
そのデータについての分布を知りたいためヒストグラムをだし、
そのデータの平均値、分散を調べてそのヒストグラムの上に重ねて出したいのですが、
やり方がわかりません。
ヒストグラムの部分については
x<-read.table("data.txt")
hist(x([,1])←この部分がうまくいきません。
正規分布については
a1<-0.005162005;#平均
a2<-0.0000773858;#分散
Nbunpu<-function(x) 1/sqrt(2*pi*a2)*exp(-(x-a1)^2/(2*a2));
という風にやっています。
重ね方については
hist()←?
par(new=T)
plot(Nbunpu,-0.5,0.5)
でやればいいのかなと思うのですが・・・
宜しく御願い致します。
174 名前:
なぜhistがうまくいかないのかはデータを見ないと分かりません。
見出しの変数名がついていたりしませんか?
x<-scan("data.txt")
でエラーが出るなら数値データ以外の何かが含まれています。
175 名前:
データはたしかに数値データのみです。
> hist(x([,1])
エラー:syntax error in "hist(x(["
のようなエラーがでました。
176 名前:
scanは試したの?試してエラーがなかったのならhist(x)でうまくいくはずだけど。
(2列以上データがあって1列だけ使いたいならread.tableしかだめだけどね。)
なお、数値データと思いこんでる場合もあるよ。たとえば「1,000」なんてコンマを
入れたりするけどRでは文字列にされちゃうよ。
177 名前:
scanは試しました。特にエラーは出ませんでした。
データが8列500行ぐらいあるのでread.tableしかだめなようですね。
エラーがsyntax errorなので、文法的に間違っているのかとかいろいろ考えたのですが・・・
もう少しがんばってみます。ありがとうございました。
178 名前:
scanが使えるなら
x <- matrix(scan("data.txt"),ncol=8)
で十分じゃないの?
まさかと思うけどx[,1]のコンマをピリオドと間違ってたというような
落ちじゃないよね?
179 名前:
8列入ったデータをそのままやるとどうしてもエラーが起きるので、
プログラム的にはかっこ悪いですが、手作業で1列だけのデータを8つ作り、
それを動かしてみたらうまく動きました。
2列以上のデータに対してhist(x[,1])とかは使えないのでしょうか?
いやそんなわけないですよねぇ・・・
とりあえず、提出用のものができました。
ありがとうございました。
180 名前:
> 2列以上のデータに対してhist(x[,1])とかは使えない
意味わかんない。
> x <- cbind(a=runif(10),b=runif(10))
> hist(x[,1])
やってみな。
181 名前:
>>175
> hist(x([,1])
エラー:syntax error in "hist(x(["
scanとかそんなことはどうでもよくて、xの後の括弧が余計なんだよ
182 名前:
うまくいきました。ありがとうございました。
ご教授してくださった皆様どうもありがとうございました。
183 名前:
エクセルの内容の一部を取り込みたいのですが、以下のようなメッセージがでます。
read.delimを使うのに何か気をつけねばならないことがあるのでしょうか?
使用しているのはR(2.4.1)です。
>> x<-read.delim("clipboad")
>以下にエラーfile(file, "r") : コネクションを開くことができません
>追加情報: Warning message:
>ファイル 'clipboad' を開くことができません, 理由は'No such file or directory'です
184 名前:
ここに貼り付けた通りなら綴りが違うんじゃあ…。
clipboardっ
すよ。
186 名前:
変数選択を行おうとするとメモリが足りないとのエラーが出てしまいます。
データは24000件、従属変数は2種類、説明変数は105次元です。
以下のようにしているのですが、
メモリを割り当てるための設定は他にあればご教授願います。
環境はFreeBSD、R2.3.0です。
以下実行例です:
% R --max-vsize=1500M --max-nsize=50M
...
result <- lm(Cat ~ ., data = df)
result2 <- step(result)
...
エラー;サイズ 18562Kb のベクトルを割り当てることができません。
190 名前:
1.24000からランダムに非復元抽出で1000くらい抽出する
2.1000掛ける107の行列で変数選択,たとえば10個くらいの残る
3.24000掛ける12のデータで確認する,2と殆ど変わらんゾ
無作為に1000抽出すれば,元のデータと
相関係数は0.005以下のズレしかないから,実用的には
これで十分
むしろ24000で変数選択するとNが多すぎて
ゴミみたいな変数を拾いがちになるよ
191 名前:
csv形式で8000行9列程度のデータをインポートしようとするとRがフリーズします.
データを少なくして2000行9列程度でやってみるとかろうじて読み込んでくれるようなんですけど
8000行で読み込みたいので教えてください
192 名前:
193 名前:
メモリのサイズはほとんど関係ないです.
194 名前:
196 名前:
197 名前:
198 名前:
http://www.ae.keio.ac.jp/lab/soc/takeuchi/japla/index.html
http://www.jsoftware.com/
199 名前:
Rでモンテカルロシミュレーションをやろうと思っています。
ファクターは、2種類で、
ひとつは対数正規分布にもうひとつは正規分布な乱数にて数字を出し、
最後に両者を掛け合わせる形になります。
具体的な手順、ソースに参考になるページなどご存知の方は、
ぜひ情報をいただけると幸いです。
201 名前:
そのくらいなら、R-tips みれば一発じゃね?
http://cse.naro.affrc.go.jp/takezawa/r-tips/r.html
202 名前:
例えば、
f_n (x) = x+n (n=1,2,...,100)
のような100個の関数を定義したいのですが、
f <- list(NA)
for (i in 1:100){ f[[i]] <- function(x){ x+i }}
のようにすると、f[[1]](関数fの1番目の要素)は、
function(x){ x+i }
となり、iが残ったままの形で定義されてしまいます。
ちなみに定義したい理由は、
別の関数の引数として用いるためです。
203 名前:
2変数関数じゃだめなわけ?
204 名前:
おれも>>202と同意見
hoge <- function(x,n) {
return(x+n)
}
205 名前:
2007/03/22(木) 05:35:47
Rに boot() というbootstrap関数があって、
(私の理解では)この関数は一変数の関数を引数とする関数です。
なので、あくまで1変数の関数のを定義したいのですが。
206 名前:
だったらベクトルを引数にしてc(x,n)で対応することはできない?
その一変数ってスカラー限定?
207 名前:
f<-sapply(1:10,function(i)eval(parse(text=paste("function(x){x+",i,"}"))))
とか
f<-list()
for(i in
1:10)f[[i]]<-eval(parse(text=paste("function(x){x+",i,"}")))
とか
208 名前:
2007/03/22(木) 17:45:46
確かにそうですね。その関数はデータフレームを引数とする関数
なのですが、そのデータフレームに新たに列を追加して、その全ての
行の値をnにしておけば、対応できそうな気がします!
>>206
おー、これはすごい。保存させていただきます。
eval や paste を使って...と自分でも思っていたのですが、
細かい仕様をきちんと理解していないためできませんでした。
お二方、どうもありがとうございました!
209 名前:
R-tipsに書いてあることはだいたいやれるようになったのですが、もう一段ステップアップしたい。
Rでインライン関数や構造体、クラスは使えるのでしょうか。
210 名前:
U. リゲス『Rの基礎とプログラミング技法』
http://www.amazon.co.jp/exec/obidos/ASIN/4431712186
211 名前:
WINDOWS XPに
This is Meadow-3.00-dev (KIKU)
based on GNU Emacs 22.0.90.1 (i386-mingw-nt5.1.2600)
Last Changed Rev: 4181
をnetinstallerでインストールした後、
ESS-5.3.3のインストールを試みています。
Meadowは入ったのですが、
まず、ESSのバイトコンパイルができません。
しないで適当にESSをsite-lispのところにおき、
,emacsに(require 'ess-site)を書いて立ち上げたら、
一応、ESSを認識しているようなんで、
ためしにM-x Rをしてみたら
let: Lisp nesting exceeds `max-lisp-eval-depth'
と表示され、なにも起こりません。
このトラブルに対処できる方法を
誰かご存知ありませんか?
219 名前:
R言語・環境って書いたら先生にもっとマシな言いよう無いか調べてくれと言われました。
220 名前:
データ解析環境R
引用は
@Manual{,
title = {R: A Language and Environment for Statistical Computing},
author = {{R Development Core Team}},
organization = {R Foundation for Statistical Computing},
address = {Vienna, Austria},
year = {2006},
note = {{ISBN} 3-900051-07-0},
url = {http://www.R-project.org},
}
Bib形式が分からなかったら、適当な文献ソフトに読み込ませろ。
221 名前:
データ解析環境R ですね。
早速先生に聞いてみます。
どうも有り難うございました。
226 名前:
Rを呼び出すことは可能ですか?
Rをインストールしてある前提です。
228 名前:
RExcelというのがあるが、
http://www.okada.jp.org/RWiki/?RExcel
これはExcel上にRのコマンドを書いて呼び出していたと思う。
Excelのコマンド操作のみというのがマウスで選ぶだけというような
意味ならそれからほど遠い。
229 名前:
230 名前:
Rをコマンドとして呼び出して標準入出力で計算させることができるみたいだよ。
232 名前:
2007/04/26
後藤大地
さまざまな機能追加やバグ修正が実施されているが、ユーザが直接関係する主な変更は次のとおり。
apropos(x)およびfind(x)をx文字に対して動作するように変更。この変更にともなってすべての非標準な
評価をすべてドロップデータフレームにおいてas.matrix()によってカバーできない列名が自動的に列名を
持つように変更
アトミックベクトルにおいて$を使う場合に警告が出力されるように変更
UNIXコマンドラインインタフェースのコマンド補完のようなRオブジェクト補完機能が有効になった。無効に
したい場合は環境変数R_COMPLETION=FALSEを設定すればよい
Rで提供している統計機能は線形モデル、非線形モデル、古典統計テスト、時系列分析、分類、クラスタ
リングやグラフィックテクニックなど多岐に渡り、高い拡張性も実現している。
(全文)http://journal.mycom.co.jp/news/2007/04/26/007/
----------------------------------------------------
http://cran.r-project.org/src/base/R-2/
↑
どうやって落とすの?
233 名前:
フツーに落として
tar xzf R-2.5.0.tar.gz
cd R-2.5.0
./configure; make; make install
231 名前:
列ベクトルが定数倍の関係になくても、
p-valueが1になっちゃうことが多いのはどうしてなのかしら?
239 名前:
まずp値が両側で計算されていること、
また、その計算がデータを含めて超幾何分布でそれより確率の小さなものの
合計で求められていること、が理由です。
それにより定数倍から多少ずれてもそのデータが確率的に一番起こりやすいもので
ある限り表示されるp値は1となるようです。
240 名前:
参考になるサイト知りませんか
241 名前:
> RSiteSearch('java')
とりあえず、これを実行する。
242 名前:
Cygwinで使えますか?
243 名前:
RJAVAでうまくいきました
NETBEANSからのコントロールも可能になりました
お騒がせしました
これで関数ライブラリが自在に使えます
244 名前:
誰か作ってくれないかな、楽しみです
245 名前:
1000個程度のデータの判別分析にかかる時間を調べたい、って時とかに
246 名前:
やりたい計算
run_time = unclass(Sys.time())-start_time
247 名前:
おまいオモロイな
>>246
system.time
248 名前:
SJava, rJava, RMySQL を、64bit Linux(CentOS) サーバにインストールできま
せん。
http://cran.md.tsukuba.ac.jp/bin/linux/redhat/el4/x86_64/
ここからRPMを落とし、
R-2.5.0-2.rh4.x86_64.rpm
R-debuginfo-2.5.0-2.rh4.x86_64.rpm
libRmath-2.5.0-2.rh4.x86_64.rpm
libRmath-devel-2.5.0-2.rh4.x86_64.rpm
をインストールしました。
R-devel-2.5.0-2.rh4.x86_64.rpmは、Xが必要なので入れていませんが、これだ
けでコンソールの作業は出来るようなので、良しとしました。
http://www.okada.jp.org/RWiki/index.php?R%A4%C8Java
・SJava : http://www.omegahat.org/RSJava/
R INSTALL -c SJava_0.69-0.tar.gz を実行するも、エラーメッセージ(文字化け)。
>library(SJava)はエラーに。
249 名前:
>install.packages("rJava") を実行するも、エラー
*** JDK is incomplete! Please make sure you have a complete JDK. JRE is
*not* sufficient.
configure: error: ./configure failed for jri
ERROR: configuration failed for package 'rJava'
・RMySQL : http://www.okada.jp.org/RWiki/index.php?RMySQL
>install.packages("RMySQL") がエラー。
Configuration error:
could not find the MySQL installation include and/or library
directories. Manually specify the location of the MySQL
libraries and the header files and re-run R CMD INSTALL.
以上、どれもうまくいきません。
お察しの通り、ほとんど予備知識なしで手探りでやっております。何か手がか
りをいただけたらと思います。
なお、Java はBEAの jrockit-R26.4.0-jdk1.5.0_06, MySQL は 5.0.24 が
それぞれRPMインストールしてあります。
250 名前:
低レベルのjavaでの操作ならrJavaのjri.jarを使ったほうが
すんなり運用できます
rJavaパッケージのjriホルダに生成されます
docが無いようなのですが、サンプルを見ればすぐ分かると思います
JDKをSUNかIBMにしないとエラーを吐き出すようです
251 名前:
なるほど、rJavaが比較的導入しやすいが、BEAのJavaではうまく行かないとい
うことなのですね。ありがとうございます。
252 名前:
aicは$AICでしか算出できないんでしょうか
総当りになり時間がかかるため、もう少し早い方法がないか
知りたいんですが
253 名前:
Java から R を利用するライブラリが必要なのです。
JGR のインストールはうまくいかなかったので、
http://www.rosuda.org/JGR/1.0/JRI_0.1-2.tar.gz
をダウンロードし、make all すればいいかと思ったのですが、
たくさんエラーが出てしまいます。
cc -c -o src/Rengine.o src/Rengine.c -g -Iinclude -Isrc/include -fPIC
-I/usr/local/java/jdk1.5.0_12//include
-I/usr/local/java/jdk1.5.0_12//include/linux -I/usr/lib64/R/src/include
-I/usr/lib64/R/include
src/Rengine.c: In function `Java_org_rosuda_JRI_Rengine_rniParse':
src/Rengine.c:89: error: 関数 `R_ParseVector' への引数が少なすぎます
src/Rengine.c: In function `Java_org_rosuda_JRI_Rengine_rniEval':
src/Rengine.c:101: 警告: 異なるサイズの整数からポインタにキャストされました
…
(略)
254 名前:
付属するパッケージがインストールされたら読み込んで
もう一度JGRをインストール
一回じゃうまくいきませんでした
付属するパッケージは3つ位あってその中にrJavaがあります
JRIはrJavaに入っていますのでjri.jarにClasspathを通せば使えるようになります
255 名前:
Sun のJava1.5に替えたところ、rJavaはインストールできました。
/usr/lib64/R/library/rJava/jri/ に、JRI.jar が出来ていました。
今から試してみます。
256 名前:
ちなみに私はNetBeansでjavaを書いてますが
順調に動いてます
JRIとjavaのアプリケーションとの間にコマンド用のインターフェース
をかませたりもしてます。
少し速度が遅くなるように感じますがその辺の対策があったら
是非教えてください
257 名前:
どうしたらいいでせうか?
as.POSIXct とかだと普通に変換する方法がわからないとか言われます・・・
258 名前:
ISOdatetime(1970, 1, 1, 0, 0, "UTC") + x
259 名前:
重回帰分析(lm関数)でモデルを作成した後に、
モデルから算出される推定値を出力させたいのですが、
どのようにやるのかわかりません。
残差については、「resid」で出せるのですが。。
後、ベクトル自己回帰分析(VaR分析:ar関数)の際の推定値も同様なのでしょうか?
知っている方がいらっしゃったら、ご教示ください。
260 名前:
white.test(x,y)という引数が2つ必要なことはわかるのですが、
それぞれに何をいれたらいいのかがわかりません。
使っている方がいらっしゃいましたら、ご教示下さい。
261 名前:
なぜヘルプを見ない?
> ?white.test
262 名前:
model <- lm(.....)
predict(model)
ベクトル自己回帰はやったことないのでパス.
263 名前:
ありがとうございます。
ヘルプを見てもいまいちピンとこなかったもので。。
ようやく理解できました。
predictは予測だけにしか使えないと感違いしてました。
よくよく考えると同じ理論値を出しているものですもんね。
非常に助かりました。ありがとうございます。
268 名前:
をすべて求めたいんですが、Rではどのようにしたらいいんですか?
272 名前:
と同じだけど
> n <- 1:50; n[2^n == n^2]
[1] 2 4
== を使った判定が正確かどうかは知らない。
274 名前:
これって何を計算してるんですか?
275 名前:
diff(a)
276 名前:
a[-x] は、x番目の要素だけを除いた残りの要素を示すことに注意。
277 名前:
nnet(X[,-10],X[,10],size=s,maxit=it,MaxNWts=30000,lineout=T)
# weights: 1101
initial value 2949.497382
final value 1453.000000
converged
> pred = predict(mynet,Y[,-10],type="class")
以下にエラーswitch(type, raw = z, class = { :
inappropriate fit for class
このエラーが取れなくて困ってます。。。
彼は何にご不満なんでしょうか?
278 名前:
Value:
If 'type = "raw"', the matrix of values returned by the trained
network; if 'type = "class"', the corresponding class (which is
probably only useful if the net was generated by 'nnet.formula').
ヘルプぐらい嫁
279 名前:
まだ未解決なので、続投をお許しください。
分かったことは、このnnet.formulaが肝っぽいということと、
ヘルプはとても便利だということの2つ。
example(predict.nnet)で実行サンプルを見てみました。
species ~ .
↑このあたりを真似て書きたいと思うんですが、そのためには
colnamesなどで名前を付けてあげないといけないんでしょうか?
nnet.formulaってこのあたりの話ですよね。
280 名前:
?nnet.formula
ヘルプ嫁。
んでcolnamesで名前付けてあげないといけないと思ったんだったら試せ。
試してわからなかったら質問しろ。
そのときはコードも書け。
データすべて乗せる必要はないがデータ構造はわかるように。
281 名前:
ヘルプ見ても分からなかったので、コードをがっつり載せさせてください。
library(nnet)
s=100
it=1000
pre_year<-read.csv("4hour_2001.csv")
this_year<-read.csv("4hour_2002.csv")
num_p<-length(pre_year[,3])
num_t<-length(this_year[,3])
X<-matrix(1:(num_p-9)*10,num_p-9,10)
for(l in 1:(num_p-9)){
for(m in 1:9){
X[l,m]<-pre_year[l+m-1,3]
}
if(pre_year[l+m,3]>pre_year[l+m-1,3]){
X[l,10] = 1
} else if(pre_year[l+m,3]<pre_year[l+m-1,3]){
X[l,10] = -1
} else{
X[l,10] = 0
}
}
282 名前:
Y<-matrix(1:(num_t-9)*10,num_t-9,10)
for(l in 1:(num_t-9)){
for(m in 1:9){
Y[l,m]<-this_year[l+m-1,3]
}
if(this_year[l+m,3]>this_year[l+m-1,3]){
Y[l,10] = 1
} else if(this_year[l+m,3]<this_year[l+m-1,3]){
Y[l,10] = -1
} else{
Y[l,10] = 0
}
}
mynet = nnet(X[,-10],X[,10],size=s,maxit=it,MaxNWts=30000,lineout=T)
pred = predict(mynet,Y[,-10],type="class")
##
4hour_2001.csvと4hour_2002.csvは時系列データです。全て数字。
ニューラルへの入力は、2001年のデータを9コずつ横に並べて、
10コめの箱に教師信号として"クラス"を入れておきたい。
クラスは、+1, -1, 0の3種類。上がるか、下がるか、そのままか。
2001年のデータで学習をして、2002年のデータでテスト。
その結果を3種類のクラスに分類させたいとです。
丸投げ状態。。。 もういやん。
283 名前:
label~.とかやってみてるんですが。同じエラーから逃げられませんでした。。。
284 名前:
の意味を教えてください!
285 名前:
<ヒント>dnorm(x,mean,sd)となっているので,plot(function(x){dnorm(x,
mean=2, sd=1)},-3,6)のように1引数の関数に変換してから利用する.
グラフは(平均0,分散1),(平均0,分散4),(平均2,分散1),
(平均2,分散4)の場合について描け.
というもんだいなんですが、 plot(function(x){dnorm(x,
mean=2, sd=1)},-3,6)の -3 6がよくわかりません。
meanが平均で、sdが分散なんですか?
286 名前:
[1] 0 1 1 2 3 5 8
これってなにをやってるんですか??
287 名前:
嫁
288 名前:
先にもやり取りがあったpredict(lm())の件なのですが
一期先予測をしたいときにpredictの引数をどのように設定すればいいのか教えてください
289 名前:
2007/07/05(木) 13:15:27
274みたけどわかりません。分からなくて困ってますお願いします
290 名前:
c(1,1,2,3,5,8,13,21)を c(2,2,2,2,2,2,2,2)とかc(1,2,3,4,5,6,7,8)とか、その他いろいろ変え
て試してみろ。
291 名前:
2007/07/05(木) 15:01:45
cによらず同じ答えが返ってくるのはわかりましたが、
そのルールがわからないです・・・
292 名前:
> a<-c(1,2,3,4,5,6,7,8);a[-1]-a[-length(a)]
[1] 1 1 1 1 1 1 1
> a<-c(2,2,2,2,2,2,2,2);a[-1]-a[-length(a)]
[1] 0 0 0 0 0 0 0
> a<-c(2,2,3,2,2,1,2,2);a[-1]-a[-length(a)]
[1] 0 1 -1 0 -1 1 0
> a<-c(2,2,4,2,2,1,2,2);a[-1]-a[-length(a)]
[1] 0 2 -2 0 -1 1 0
301 名前:
302 名前:
を読み込むように設定したいのですがどうすればよいでしょうか。
303 名前:
実行環境くらい書かないとな。
質問のしかたが悪いと答えを得られる確率はとても低くなるよ。
304 名前:
失礼しました.
Mac OS X Tiger i386 で R 2.5.1 です.
R は macports からインストールしています.
305 名前:
Rのバージョンでどんどん変わるかも知れないのでリンクで示します。
http://www.okada.jp.org/RWiki/?Macintosh%C8%C7R%A4%CEFAQ
MacでR起動時に任意ディレクトリをHOMEするっていうのは簡単じゃないのか知れない。
http://www.okada.jp.org/RWiki/?%A5%D5%A5%A1%A5%A4%A5%EB%A4%F2%C6%C9%A4%DF%B9%FE%A4%E0%20tips%20%BD%B8%28%BB%C3%C4%EA%C8%C7%29#v3564e72
作業ワークスペースの内容を任意のファイルからリロードするのは実行パラメータで指定すれば簡単みたいだ。
306 名前:
未検証だけど、普通に~/.Rprofileにsetwd()を書いたらあかんの?
私の場合、MacOSX 10.4 だけど、emacs+ess使っているので、>>304の
ようなことを
したければ、essの設定をちょこっと変更する
307 名前:
一度書き加えたもの(例えばxlabelとか)
を書き換えたりできないのですか?
全消去しなきゃならないの?
308 名前:
上書きはできるはずだがうまくいったためしない。素直に書き直すのが吉。
初めはラベル入れないでグラフと凡例の図形だけ作って
Excelとかに貼り付けた後で入れるという手もある
見栄えを良くするために良く使っているが管理間違えると捏造になる。
309 名前:
2007/07/18(水) 23:03:44
一度できたものの
書き換えができないのは
グラフ描画としては完全に致命的ですね
又、コマンドちまちまうてってか?
いやならわざわざスクリプトかけってのか?
完全に失望しました
310 名前:
統計で言うところのLDってなんですか
311 名前:
グラフ描画ソフトじゃなくて統計解析ソフトだからな。
不満なら文句言ってないで自分で描画ルーチン書けばいいだけだな。
312 名前:
313 名前:
>>312はオリジナルデータを持ってない
と予想w。
314 名前:
例えば40人のデータがあって、テストの点数59点以下を不合格群、60点以上を合格群といった具合に
分けたい場合、何かいい方法ありますか?
リストに論理式を用いてと規定の行のみを抽出して加工しようとも思いましたが
行の値だけ抜き出しても、その値の行の値を変えるとか別次元のベクトルでラベル付け
しようかと試みましたがなかなかうまくいきません
315 名前:
全部消去の意味が不明だが、複雑な図を作るときは関数化して作図すると思うので、
コマンド1つで済むと思うけど。再描画がいやなら、むしろ面倒だけど、tgifやイラストレ
ータのようなドローソフトに読み込ませて編集する。
>>307
コマンド履歴のおかげで、一度タイプしたコマンドは2度と入力する必要がないし、入力
したコマンドを微修正して再実行するのは極めて容易ということに気がつけ
>>307
それなら理解できる。ドローソフトを使うことをすすめる
>>307
意図がよく分からないけど、こんな感じ?
a <- data.frame(score=round(runif(40)*100))
res <- cbind(a,decision=ifelse(a<60,'F','A'))
そもそもリスト項目へのラベルを自動でつけたいなら、
eval(parse(text=paste()))を使わないとできないと思う。
316 名前:
40人くらいだったらExce○のフィルタとかでやった方が簡単にできるw。
RExcelというアドインを使えばExce○からRを呼び出すこともできるし。
317 名前:
>>316
そんな便利なツールあるんですか?onWindowsじゃないんで使えませんがあったら便利そうですね
>>316
ありがとうございます
やりたいことはばっちりできました
で、甘えついでにもうひとつ質問させてください
ラベルデータ("F","F","T",NA,"T")
データ値1 (50,40,45,44,45)
データ値2 (10,15,18,17,20)
といったデータフレームがあったときに
ラベルデータ("F","F","T","T")
データ値1 (50,40,45,45)
データ値2 (10,15,18,20)
という値が返ってくる、つまりラベル項目に欠損値があった場合
その行のデータを取り除いたデータフレームを出力したいといった場合どうすればよいでしょう?
318 名前:
subset( data,!is.na(label) )
ですね
319 名前:
320 名前:
2分もたたないうちに宇宙船は爆発事故をおこし,乗組員は全員死亡した.次のデータは事故の原因
とされている,Oリングの過去23回の破損状態の記録である.シャトルは2つのブースターロケット
との推進力を借りて軌道まで打ち上げられるが,このブースターロケットはいくつかに分かれており,
それぞれをつなぐジョイント部で燃焼中の熱いガスをもらさないようにOリングが使われている.2
つのブースターロケットで全部で6個使われている.
1 53 2
2 57 1
3 58 1
4 63 1
5 66 0
・
・
・
20 76 0
21 78 0
22 79 0
23 81 0
破損割合pを各発射回ごとに推定してそれを,横軸に温度,縦軸に破損割合をとったグラフを作成
せよ.このとき,破損しなかった回をプロットからはずしたものと,入れたものの2種類のグラフを
作成せよ.
という宿題なんですが、破損割合の推定ってどうやるんですか?点推定ですか?
また、使用するデータの形式がどうなってるか良くわからないです。
53とかが温度(華氏)で 2とか1が破損回数なんですかね? 1回の打ち上げで、2回破損?
321 名前:
全くの人頼みだな。
自分で考えろよ。
322 名前:
どういう処理をしたらいすかね
ソートしてからabs関数使うとか?でも元の並びは変えたくないす
323 名前:
ソートとかabsとか意味が分からんが、
> haba <- 0.2
> aruatai <- 0.5
> a <- runif(100)
> a[((a> aruatai + haba) | (a < aruatai - haba))]
こういうこと?
324 名前:
破損割合の推定の仕方だけでも教えてもらえませんか?
325 名前:
[A]
ID SEX
1 F
2 M
3 M
[B]
ID WEIGHT
1 60
3 50
みたいなデータフレームを横結合して
[C]
ID SEX WEIGHT
1 F 60
2 M NA
3 M 50
って感じにしたいんだけど、どうすればいいんかな?
326 名前:
この書き込みについてる表だけじゃ列の意味もよくわからないよ。問題文の読み取り方から
間違っているんじゃないの?先生に直接きいてみたら?
>>324
> a <- data.frame(id=c(1,2,3),sex=c('F','M','M'))
> b <- data.frame(id=c(1,3),weight=c(60,50))
> c <- merge(a,b,by="id",all=T)
> c
id sex weight
1 1 F 60
2 2 M NA
3 3 M 50
330 名前:
一番左のはRでデータ表示したときの行番号なんで無視してください
53 2
57 1
58 1
63 1
66 0
・
・
・
76 0
78 0
79 0
左側が打ち上げ時の温度で、右側が破損個数だそうです!
331 名前:
332 名前:
お、きちんと調べてきましたね。
これならわかるかな。
Oリングは合計で6つあるんだから、破損割合は破損個数を6でわればOkだね。
あとは破損割合と温度の間に関係があるか?という仮説に対して、
統計学的な答えを与えられれば、いいレポートになるんじゃないの。
328 名前:
333 名前:
「一期先予想」という言葉は聞いたことがないんだけど、
predict(model, newdata=data.frame(説明変数=xxx)) のこと?
334 名前:
335 名前:
単純にそれでいいんですね。推定せよなんて立派な事書いてあったので、最尤推定とかするのかと思いました
横軸に温度,縦軸に破損割合をとったグラフを書くんですが、破損回数がゼロ回のときを抜いたものも
書かなきゃいけないんですが、Rではどうやるんですか?
実はこれだけじゃなくて、温度でグループわけして破損割合の区間推定なんかもしないといけないんですがw
336 名前:
一般的かどうかは業界によると思われ。
まぁいずれにせよpredictで。
>>334
1回の打ち上げにつきデータ一組しかないからmleとかfitdistrはないな。
破損回数がゼロ回をのぞくのは、データ抽出の問題。データフレームから、特定の変数が
特定の値になっている行だけをとりだす関数、あったよね。
逆に温度をカテゴリ化して,特定のカテゴリの破損割合を抽出して、その母平均の信頼区間...
という流れか。
337 名前:
カテゴリわけってどうやるんですか?
if(temp>=66){
g1=temp}
else{
g2=temp
みたいにすると 条件が長さが2以上なので,最初の一つだけが使われますって出てできないんです
338 名前:
温度が低いほうのグループがこんな風になったら、このグループでの破損割合pでどうやって求めるんですか?
(2+1+1+1)/6でいいんですか?
53 2
57 1
58 1
63 1
339 名前:
subsetとかで抽出するのも正解ではあるけど、
cutでファクタに変換してからx[temp=="(50,55)",]とかで抽出するほうが
Rらしいかな。
(2+1+1+1)/6 って、まさかとは思うが、
((2+1+1+1)/4)/6 のミスタイプだよな?
破損割合の平均値が求まったら、1標本t検定に使う関数で、平均値の
信頼区間を求めてみれば?
340 名前:
温度が低いグループと高いグループでそれぞれp1,p2の破損確率が求まりました。
t.testを使った方法がわかりません。t.testの引数は一つですよね?
また気温がたとえば60度の時の破損確率を予測する方法もわかりません
342 名前:
t.test(c(2,1,1,1)/6) とかで破損確率の95%信頼区間をだせば?
予測は...このレベルの学生さんにlm()をやらせるとは豪気なw
341 名前:
データのほうは手をつけずに
343 名前:
列が大きい場合って経験したことがないですが、Rの制限でしょうか。
何列ぐらいのデータですか?
RでだめだとExcelでもだめだろうと思うので、あとはRubyとかPerlとかawkとかに
頼るしかないかと...
344 名前:
そもそもRで駄目ならRubyもPerlもawkも基本的に駄目でしょ。
SASはデータをメモリに読み込まないから大丈夫だと思うけど。
345 名前:
ん?1行をどういう方法で読み取るかによるので、Rではだめでも、Ruby等で
簡単に1つのCSVをいくつかのファイルに分割するスクリプトを書いて、分割した
ファイルをRで読み込めばよいのでは?
SASって読み込めるCSVファイルの列数も制限ないのかな...
まぁ、一度データセットになってしまえば確かに大規模データはマイニングソフトである
SASの得意分野だと思うけど。
346 名前:
複数のCSVファイルに分割しても結局Rに読み込むんでしょ?
デフォルトのRはオンメモリだから何も変わりません。
分割したファイル毎に分析を行い結果を統合…まず有り得ませんね。
SASはデータをHDにガリガリ書き込んでメモリを使わないのさ。
一部のプロシジャは別だけど。
347 名前:
Rはデータハンドリングが弱すぎだね。ちょっと致命的。
348 名前:
具体的に
349 名前:
そういう分野もあるかもね。さようなら。
自分の分野ではまったくそういう印象を受けないので、想像できないけど。
350 名前:
351 名前:
一体何行書けば足りるのかって気になってくる
凡例書くのでさえ一苦労
352 名前:
353 名前:
これがゆとりということか。
355 名前:
凡例書くのにどれだけ手間とられてると思ってるんだよ!!!
プロット点の数字、色の数字、配置!(場所が座標指定w)
更に数式表現さえexpression
でわざわざ調べて書かなきゃいけない煩雑さ!
冗談じゃないよ!つくってるやつはなにやってんだ!
スクリプト?
いっとくがおれはzshとPerlマスターだ
その俺が頭にきてるんだ
猛省しろ
356 名前:
具体的に書いてみたら?
357 名前:
>いっとくがおれはzshとPerlマスターだ
( ゚∀゚)アハハ八八ノヽノヽノヽノ \ / \/ \
360 名前:
363 名前:
もうちょっとグラフを簡単に書けるようにしなきゃいけない、
っては事実だと思うよ。
グラフの書式は、エクセルみたいに手でいじれるようにするとか。
数式とかも、せめてTEXと同じ書式で入力できたら楽なのに。
354 名前:
359 名前:
gcl: Compute a fuzzy rules or tree classifier from data
fuzzyRankTests: Fuzzy Rank Tests and Confidence Intervals
>>354
まだ若い君の経験での評論と、世界中の第一線の統計学者が愛用している実績と、
どちらが信用できるかよく考えてみるといい。
効率的な使い方がわからなければ、質問することは恥ではないよ。
たとえばpdf()やpng()を使ってグラフの主要部分だけを書いて、凡例等は他のソフトでつける
テクニックとか、locator()関数で場所を指定する方法とかね。
365 名前:
367 名前:
.call("○○")
とかなっているんですが、この場合cのソースとかはどこを調べればいいんでしょう?
また、cのコードを編集するにはどうすればいいんでしょう?
368 名前:
> この場合cのソースとかはどこを調べればいいんでしょう?
CRANへ行ってソースファイルを見る
> cのコードを編集するにはどうすればいいんでしょう?
テキストエディタで編集する
ソースを検索したいなら、例のgonzuiサイトが便利。
370 名前:
処理を行って、データフレームを生成すると、出力時に1列目に
1
2
...
と番号を振ってくれるのですが、そのデータフレームをファイルの保存する際に
その振ってくれた番号を一緒に保存してしまい、列がひとつ右にずれてしまいます
また、空のデータ項目があった際、たとえば
"aaa"\t""\t"bbb"\t
のような時にCSVファイルに書き出そうとしたらaaaからbbbまでをひとつの文字列として認識してしまい
結果項目数がおかしくなり、これまたずれが生じてしまいます
何かよい解決方法ご存知の方、ご教授お願いします
使用しているのはVer2.50です
371 名前:
しかもずれるのは行数によってマチマチです
aaa,\t,bbb をひとつの文字列として認識したり
AAA,\t までをひとつとして認識したり
前後のaaaやbbbのアスキーコードとかの関係かもしれませんが
372 名前:
多くで使われてることと使いやすさはほとんど関係ないよ。
これはソフトウェアインターフェイス設計では常識。
373 名前:
データの書き出し関数のオプション弄れば消せなかったっけ?
英語が苦手なので…ってのはナシな
374 名前:
オプションで番号問題は解決しました
write.table(x, file=" ",row.names=FALSE)
が、文字列データの区切りは相変わらずうまくいきません
NAでなくても、連続する日本語データでも、区切りがなくなる文字があるようです
375 名前:
表示をlessみたいにページ単位でやらせるには、どうすればよいですか?
376 名前:
write.tableでオプションをがしがしつけていいけど、write.csvとかwrite.csv2を使わないのはなぜ?
>>374
lessがページャだとしっていれば
?page
linuxならemacs+essを使うとらくだよ。
377 名前:
X11()を行うとフォントパスがおかしいと言われて表示できないんですが、
何が足りないか分かる人いますか?
コマンドオンリーでウィンドウは開けないとか?
378 名前:
役に立たなくて申し訳ないが、こちらは問題なし。
379 名前:
情報ありがとう!
実はあの後別のマシンで試したら確かに普通にX11ウィンドウが使えた。
やはりRのソフトそのものには問題はなさそう。
しかし、もう一方のマシンではなぜ同じように入れたのにフォントパスが
おかしいと言われるのだろう?謎は深まるばかりです…。
380 名前:
"R" 実習で学ぶ統計的シミュレーション入門セミナー 大阪大学 坂本亘准教授
日時:2007年9月18日(火) 12:30-16:30 会場:大井町きゅりあん4階
http://www.johokiko.co.jp/seminar_medical/AA070911.php
381 名前:
Rで新しく動的にディレクトリ作成するにはどうしたらよかですか?
write.csv(x,paste(sys.date(),"kekka"))
382 名前:
一体あのエラーは何だったんだろう…。
383 名前:
環境をかきなよ。
system("mkdir $(date +%Y%m%d)")
で今日なら20070911というディレクトリが出来るけど。
384 名前:
前スレでは Meadow + ESS が紹介されていましたが。
また、xyzzy で R を書くのに適したモードはありませんか?
385 名前:
2007-09-20
11:27:17.098 R[659] tossing reply message sequence 1 on thread
0x567d0a0
こんなメッセージが赤い字で出てました。
これは一体なんでしょうか?
R version 2.5.1
(2007-06-27)
R 2.5.1 GUI 1.20
(4535)(4535)OSXです。
387 名前:
うちの環境では出ないので、Application EnhancerとかGrowlとか、
アプリの起動時に何かさせる拡張系が組み込まれている環境特有な
現象のような気がする。
389 名前:
一旦終了してから起動し直すと出なくなります。
でも、システムを起動し直し、Rを動かすと(一回目に限り)やはり出てきます。
実害は無さそうなので、気にはなるけれど、目をそらすことにします。
ありがとうございました。
390 名前:
391 名前:
/\ /|
/ /| \/ |(\ /)
/ / | \|( ゚ー゚) <全力でWindowsを捨てOpenBSDに移行せよ
/ / | __〃`ヽ 〈_ OpenBSD
/ γ´⌒´--ヾvーヽ⌒ヽ OpenOffice.org+Wine
//⌒ ィ theo`i´ pf ); `ヽ FireFox+Xfce+uim+anthy
// ノ^ 、___¥__人 | ClamAV+Snort+Privoxy+Tor
/ ! ,,,ノ爻\_ _人 ノr;^ > )
/ ( <_ \ヘ、,, __,+、__rノ/ /
ヽ_ \ )ゝ、__,+、_ア〃 /
ヽ、___ ヽ.=┬─┬〈 ソ、
〈J .〉、| |, |ヽ-´
/"" | sshd |: |
レ :|: | リ
/ ノ|__| |
↑ /| ,, ソ ヽ )
\_/ .,ゝ ) イ ヽ ノ
y `レl 〈´ リ
/ ノ | | .
l / l;; |
〉 〈 〉 |
/ ::| (_ヽ \、
(。mnノ `ヽnm
392 名前:
Open厨からは回答いらね。
393 名前:
R で多倍長整数(桁数に制限のない整数)を扱うことはできますか?
たとえば 1000!を正確に計算する、といった用途です。
394 名前:
多倍長整数を操作する関数群、パッケージ gmp
2chで聞く前に
http://www.okada.jp.org/RWiki/?cmd=search
で検索くらいはしませう。
396 名前:
おお、ありがとうございます!
たしかに検索したらあっさり見つかりました。すみません。
http://www.okada.jp.org/RWiki/?cmd=read&page=%C3%CE%A4%C3%A4%C6%A4%A4%A4%EB%A4%C8%A4%A4%A4%C4%A4%AB%CC%F2%A4%CB%CE%A9%A4%C4%28%3F%29%B4%D8%BF%F4%C3%A3&word=%C2%BF%C7%DC%C4%B9%C0%B0%BF%F4#if259a3d
1000! は
> library(gmp)
> prod.bigz(1:1000)
で求めることができました。
399 名前:
Quartzではグラフで日本語が通るのですが(青木先生の.Rprofile設定)、
Carbon Emacs+ESS 5.3でX11上で日本語をグラフ出力すると文字化けしてしまいます。
どなたか対策をご存じの方いらっしゃいますでしょうか。。
400 名前:
401 名前:
いったい何十年前の機能しかもってないのかっての
402 名前:
SPSSやSASでもGUIでは出来ないこと多いかと。
それより、Rでは変数が多い場合のデータハンドリングに結構工夫が求められるかと。
404 名前:
オープンソースの文化では、いいだしっぺの法則というのがあります。
> RはGUI機能がまともではない
不満ならあなたが作りなさい。
> RSiteSearch("widget")
私は不満ではないです、っていうか、Rcmdrみたいなのならいらん。
403 名前:
MacOSXでessを使っている仲間を発見!
エラーメッセージなどの字化けはどうやって回避しているの?
こちらはあきらめてLC_ALLをCにして使っています。
405 名前:
ページ閲覧中に、Rを再呼び出しして、再び解析を行い、ファイルを生成したものを画面表示したいのですが
<?php
system("R < rscript.R");
?>
としましてもうまく動いてくれません
ためしに書き出す先のパーミッションを777にしてみたり、パスをすべてフルパスに記述し直したりもしたのですが
うまく動きません
PHPの話題も織り交ざってますが、識者の方回答のほうよろしくおねがいします。
408 名前:
409 名前:
410 名前:
そもそもそのWebサーバのターミナルで R < rscript.R が期待通りになる?
411 名前:
415 名前:
せっかくRExcel入れたけど、R Startさせるとマクロの文字列関数のとこでボロボロに落ちる
Left$やMid$が使えねえってどういうことだ? 文字コードが対応してないのかなあ。
416 名前:
2003はどのREXCELで対応してるのか誰か教えてください
421 名前:
2005-12-01,45.14
2005-11-01,45.95
2005-10-03,45.74
これをread.table(fname,sep=",")で読んで、
data.frame()に格納したいとき、
as.Date(tbl[,1])
as.numeric(tbl[,2])
などという変換は必要でしょうか。
もしくは何か意味があるのでしょうか?
どうかよろしくお願いします。
422 名前:
というか、質問したかったのは、as.XXX という
変換ってなんのためにあるのでしょうか?
as の意味がよくわかりません。C言語でいう
キャストみたいなものでしょうか?
でも、無しでもなんとなくできてしまいそうな感じがするので、、、、
423 名前:
逆にStringやfactorが入っていると動かないものもある。
as.Dateは使った事ないが、
関数の中でDate形式だけに特化した機能を持たせるor厳密な設計がされている場合は必須になる。
>421の2列目のnumericに関してはis(tbl[2])でnumericなら不要だろ。
424 名前:
ありがとうございました!
なるほど、as.Dateがどういう意味なのか分かったような
気がします。とりあえず、もともとついていたので、as.Date
はつけて、as.numericは外してやってみようとおもいます。
425 名前:
適当な数字を10個返す関数を作るとき、print()を
使うと画面に表示はされますが、返り値としては
扱われませんでした。
samp = function(x) {
for (i in 1:10) {
print(x)
}
}
これってどのように書くべきでしょうか
426 名前:
a = 1
for (i in 2:10) {
a = c(a,i)
}
a
}
こう書いたらできたけど、正しいですか?
427 名前:
どなたかお教えください。
428 名前:
http://www.okada.jp.org/RWiki/?R%A4%CE%B4%D8%BF%F4%C4%EA%B5%C1%A4%CE%B4%F0%CB%DC
429 名前:
ありがとう!
カスと言われても全然いやじゃない。とてもうれしいよ、そのリンク先。
430 名前:
if (x == 0) {return(1)}
else {return(0)}
}
として、
plot(foo,-1,1)
とすると、以下のエラーになってしまいます。何が間違っているのでしょうか?
> plot(foo,-1,1)
以下にエラー xy.coords(x, y, xlabel, ylabel, log) :
'x' and 'y' lengths differ
追加情報: Warning message:
In if (x == 0) { : 条件が長さが2以上なので,最初の一つだけが使われます
431 名前:
foo()以前に、plot(0,-1,1)でエラーになる時点で気づけよ
432 名前:
でもplot(sin,-1,1)ができるのに、定数関数が描けないのはなんで
でしょうか?
というか、foo()をプロットする方法はないでしょうか。
foo(1:10)とかやってもダメでした。
(sin(1:10)はできた。)
どうかお教えください。
433 名前:
自己レスです。
わかりました。ベクトル化ということですね。
foo <- function(x) {
temp <- function(x) {
if (x == 0) {return(1)}
else {return(0)}
}
sapply(x,temp)
}
と書けばplot()できました。
434 名前:
R にはマルチスレッドを扱う機能はあるのでしょうか?
JavaのWEBアプリから呼び出そうかと思っているのですが、呼び出すたびに新し
いプロセスが立ち上がってしまうと、リソースを食いすぎて困ると思いますの
で、何とか一つの環境で複数のスレッドを実行させたいのです。
435 名前:
RVPMを調べてみます。
http://science4.2ch.net/test/read.cgi/math/1062650510/561
R本体にはスレッドコントロールをするAPIはないような感じ。
マルチスレッド版のBLASを使うぐらいか。
R-helpにはRVPMっていう名前がでてきたけど、ぐぐってもひっかからない...
436 名前:
×RVPM → ○RPVM
どうりで「ぐぐってもひっかからない...」わけです。
CRAN - Package rpvm
http://cran.r-project.org/src/contrib/Descriptions/rpvm.html
Parallel Virtual Machine - Wikipedia
http://ja.wikipedia.org/wiki/Parallel_Virtual_Machine
> PVMをインストールすると、ネットワークに接続された複数台のコンピュータ
> を、単一の計算機として利用するができるようになる。
なんだ、それでは話が逆じゃないか。こちらは1台のマシンで複数のスレッド
を動かしたいのに。
どうやら、マルチスレッドで動作する Javaプログラムからのリクエストを、一
つのRのプロセスで処理するのは、無理ということかなあ。
437 名前:
MPIでもPVMでもいいが、プロセスレベルで並列化してもいいんじゃん。snowとかつかえば簡単ぽいし。単にマルチスレッドのJavaプログラムから
ブロッキングなしでよびたいだけならRSOAPだっていいし。
438 名前:
Rをさわり始めた頃の自分を見ているようだ
hoge <- function(x) {
ifelse(x==0,1,0)
}
> hoge(1:10)
[1] 0 0 0 0 0 0 0 0 0 0
> hoge(-5:5)
[1] 0 0 0 0 0 1 0 0 0 0 0
439 名前:
> MPIでもPVMでもいいが、プロセスレベルで並列化してもいいんじゃん。snow
> とかつかえば簡単ぽいし。
Rのプロセスは1つが最低25MBも食うので、プロセスレベルの並列化は、ユーザ
が多数同時アクセスしてきたら困るのです。
> 単にマルチスレッドのJavaプログラムからブロッキングなしでよびたいだけ
> ならRSOAPだっていいし。
これですね。
http://www.okada.jp.org/RWiki/index.php?R%A4%C8Web%A5%B5%A1%BC%A5%D3%A5%B9
これに、R自体をマルチスレッドで動かす機能があるのでしょうか?
440 名前:
実メモリにワークスペース置ききらないマシンに実行させても嬉しくない気がする。
441 名前:
自分はC++はそこそこ使えて、schemeはなんとか読めて、というくらいなのですが、
Rは両方のいいとこをとったような文法と、ライブラリが充実してるのがいいです。
ifelseはベクトル化されているからそっちを使えということですよね。
ありがとうございます。
442 名前:
一つ一つのスレッドは、せいぜい50X50の行列を解くだけなので、そんなにメモ
リは食わないはずなんです。少なくとも25MBは行かないと思う。
443 名前:
そのくらいだったら直接R使わないで一旦行列演算ライブラリでマルチスレッド化したほうが良くないかな?
その結果をユーザースレッドID付きでRのデータスペースに戻してきてRで処理した方が効率的な気がする。
まあ作る手間とのトレードオフだけど。
444 名前:
そうですね。全部Javaで済ませることも検討します。
446 名前:
自動補完してくれる機能はないのですか?
447 名前:
そのためのess
449 名前:
書こうと思ってます。そこで質問なのですが、plot()で線分を表示する
のってどうやればいいですか?
450 名前:
add=TRUEでもlines()でも好きなのを使え
451 名前:
ありがとうございます。でもlines()でうまくいきません。
c(1,1) -> c(3,4)
c(1.1,1.1) -> c(4,5)
...
という感じの点から点への対応のリストがあって、これを図示したいのですが、
lines()って点を2つ与えると線をかいてくれるのですか?
452 名前:
> plot(runif(10)*10,runif(10)*10)
> lines(c(1,3),c(1,4))
> lines(c(1.1,4),c(1.1,5))
普通に線を引けるけど。
453 名前:
ありがとう。たしかに452が書いてくれた順序でやるとlines()も動きました。
でも、plot()よりも先にlines()を実行すると、lines()が正しく動きませんでした。
> lines(c(1,3),c(1,4))
以下にエラー plot.xy(xy.coords(x, y), type = type, ...) :
まだ plot.new が呼ばれていません
とか出ます。
でもとりあえずこれでできそうなので、やってみます。
ありがとうございました。
454 名前:
形が不規則でちゃんとした四角形になって
ないとき全データを含んだ
Matrix型にしたい(所々の空白はNA)
んだけどどうしてもできない
なにかよい方法は?
かなりの大きさだし
縦横の大きさは前もって決めておきたくない(なぜなら数知る必要があるから)
あくまでソフト側で自動で判別できてくれて
全データを含んだMatrix型がほしい
どうすればいいのか?
455 名前:
先にExcelで整形しておいてRExcel使え
456 名前:
2007/10/25(木) 18:05:38
マクロの文字列関数がおかしい
Excel2003で最新のやつインスコ
してこれだ
完全に>>455にだまされた
457 名前:
これをpower analysis出来ますか?
458 名前:
そういうケースならcsvを直接読み込むんじゃなくて、sdf(固定長)に変換
してからread.table()にすれば?俺ならCPANにあるText::CSV_XSまたは
Text::CSVのお世話になるな。もし、与えられたデータ形式がCSVという
縛りがないなら、最初からsdfを使った方がいいんじゃね。
もし、文字列データの中にカンマを決して含まないとか、ごく単純なCSVに
限定した話なら、Rだけで何とかなるけどね。
459 名前:
おまえらカスだな。
RExcelだめなのは>>415-416で既出だろ。
460 名前:
グラフを上下逆転表示したいのですがそのようなコマンドはありますか?
仕入値、売上値を同時にグラフ表示するのですが重なってしまって見難いので
仕入値は下から上に向かって正
売上値は上から下に向かって正
というようにしたいのですが・・・
ちょっと考えたのは、売上値の最大値から各売上値のデータを引き算したデータを作って
それを描画するという事なんですが、もう少し簡単な方法がないかと・・・
461 名前:
折れ線か棒グラフか?棒グラフの1つのカテゴリーを逆さにするのはアリだと思うけど、
折れ線グラフだと、そんな変な図はかえって見にくいと思う。
462 名前:
par(new=T)してplotで点として描いてるんだけど、点の数が数万~数十万になるので前に描いたグラフが新しく描かれたグラフの下に消えてしま
い・・・上下逆転できればいいなと思いまして。
463 名前:
複数個のデータフレームからなるリストがあって、そこに新たに
データフレームを追加したいとき、どうすればよいですか?
list <-
c(list, data_frame)
とするとlistが変になってしまうし、
list==> (df1,
df2, df3, df4)
データフレームを追加
list==> (df1,
df2, df3, df4, df5)
となってほしいのです。どうかよろしくお願いします。
464 名前:
x <- list(NULL, NULL, NULL, (目的の数だけ))
としておいて、
x[[i]]としてアクセスする、
とできますが、これだと追加ができないのと、NULLの数が増えたときに
Rの中だけではスクリプトを作成できない(難しい?)です。
今はemacsのマクロでやってます。
465 名前:
ん?
list <- data.frame(list, new_data_frame)
ってだけじゃない?
466 名前:
ありがとうございます。
そうやると、データフレーム同士のデータが混ざってしまって
うまくいかないようなのですが。。。
とりあえず今はl <- list(NULL, NULL, .......)というのを手動で作成して
l[[i]]という感じで使っています。
467 名前:
l <- list(NULL, NULL, .......)は不要と思うけど。
単純に[[i]]を使えばよいと思う。
> a <-
list(data.frame(x=1:10,y=runif(10)),data.frame(x=1:10,y=runif(10)))
このaに新しいデータフレームを足したいのであれば、
> b <- data.frame(x=month.name[1:10],y=runif(10))
というbがあったとして、
a[[length(a)+1]] <- b
とすればよいだけ。
468 名前:
混ざったらだめだったんだね…。
ならば
list <-
c(list,list(data_frame))
ではどう?
469 名前:
よくそんなの思いつくな。感心した。
470 名前:
すげえ、、、、できました!
ありがとうございます!
でも、なんかトリッキーな感じですね。
471 名前:
lst<-list()
lst[[1]]<-data.frame(x=1:10,y=runif(10))
lst$df2<-data.frame(x=1:10,y=runif(10))
472 名前:
>>470と同じく>>470の方法が正当派だと思うんだけど。。。
説明が回りくどかったのか?>>470の表
記をまねれば、
番号なら、
list[[length(list)+1]] <- data_frame
名前付きなら、
list$hoge <- data_frame
473 名前:
業界によるということは、重回帰分析を時系列のn+1番目の値の予測には
使わない>>336使うはその業界の慣習に
過ぎず、当否の理論的裏づけは
ないのですね?
474 名前:
例えば,次の(4x4)行列
1,2,3,4
2,3,4,5
3,4,5,6
6,7,8,9
の第2行目と第4行目の足し算を行ない,
1,2,3,4
8,10,12,14
3,4,5,6
という(3x4)行列を生成するようなもの。
475 名前:
AtamaTsukaeTako<-function(mat,r1,r2){
z<-rbind(mat[r1,]+mat[r2,],mat[c(-r1,-r2),])
z
}
> zz
[,1] [,2] [,3]
[1,] 1 4 7
[2,] 2 5 8
[3,] 3 6 9
> AtamaTsukaeTako(zz,1,2)
[,1] [,2] [,3]
[1,] 3 9 15
[2,] 3 6 9
こんなんか?
476 名前:
ほんとに純粋な疑問なので気分を悪くしないで欲しい。
AtamaTsukaeTako <- function(mat,r1,r2){
rbind(mat[r1,]+mat[r2,],mat[c(-r1,-r2),])
}
とせずにわざわざzを経由するのはなぜ?
>>475
> a <- matrix(c(1:4,2:5,3:6,6:9),nrow=4,byrow=TRUE)
> a
[,1] [,2] [,3] [,4]
[1,] 1 2 3 4
[2,] 2 3 4 5
[3,] 3 4 5 6
[4,] 6 7 8 9
> rbind(a[1,],a[2,]+a[4,],a[3,])
[,1] [,2] [,3] [,4]
[1,] 1 2 3 4
[2,] 8 10 12 14
[3,] 3 4 5 6
477 名前:
http://cruel.org/other/rumors2007_2.html#item2007110501
> 求む求むウェーブレットのグラフ (eps形式)! メキシカンハットと
> Meyer. ファンシーなものは不要で、リンク先にあるのと同じ単純なものを
> eps 形式でいただければ幸甚。形式そろえたいのでセットでくださいな、と
> いうより両者を左右ならべて(メキシカンハットが左)横長のeps一本にし
> てくださいな。matlabかなんか持ってる人は一瞬で出るでしょ。
本に名前を載せる、または R の名を売るチャンスか?
478 名前:
出力を明確にする。
デバッグが容易。
個人的趣味。
そんだけ
479 名前:
詳しい方教えて下さい。
残差にAR(1)過程を仮定したFGLSってこのソフトでどのようにやるのかご存知の方はいらっしゃいますか?
480 名前:
その中にで出てこない変な名前の関数があります。
これってどこをみれば実装がみられますか?
481 名前:
Rのソース
パッケージならパッケージのソース
そのソースがありませんとか言うなよw
482 名前:
483 名前:
少数は含んでいないのでoptions(digits=10)では対応できないみたいです。
484 名前:
何やりたいの?
485 名前:
400,000,000 を整数表示するのは異常ですか?
指数表記だと落ち着かないんですよね。
486 名前:
ありがとう。
bootライブラリのソースをダウンロードしてくるとその中にありました。
linuxのrpmでinstallした場合って、ライブラリについてはバイナリしか
installされないみたい。
なんかバグっぽいのがあるので(単なる勘違いの可能性も十分あり)ソースを
見てみます。ありがとうございました。
487 名前:
一般的に、バイナリのrpmをインストールしてもソースは含まれませんよ。
ソースが必要ならsrc.rpmの方をダウンロードしないと。
488 名前:
Windows版のRですが、OS付属のCMDから R(Enter)で起動すると、問題なく動き
ます。しかし、Cygwin の bash から起動すると、
~ $ R
Fatal error: you must specify '--save', '--no-save' or '--vanilla'
というエラーが出ます。
これらのオプションをつけて起動すると、エラーは出なくなりますが、どうも
正常に動いていないようです。例えば
plot(1:10, 1:10)
でグラフが表示されません(CMDならウィンドウが現れてグラフが表示されます)。
これは一体なぜでしょう?そしてどう対処したらよいのでしょうか?
OSはWindowsXPです。
489 名前:
Windowsのことは全く知らないで当てずっぽうだが、Rのオプションしては、
初期ファイルへのパスが通っていないと予想。プロットされてないのは、X
window systemがインストールされていないまたはきちんと設定されてな
いないと予想。
490 名前:
ありがとうございます。
初期ファイルへのパスですが、Cygwin環境のパスは、Windows標準のコマンド
プロンプトのパスにいろいろ付け加えたものなので、パスが通っていないとい
うことは考えにくいのです。
X Window についてですが、Windows版の R は、Cygwin環境から起動すると、そ
れを自分で判断して Xクライアントになるということでしょうか?かなり驚き
です。
確かに私は CygwinのX環境は、使うつもりがないのでインストールしていませ
ん。R にはCygwin環境からでも、通常のWindowsソフトとして起動してもらい
たいものです。何か起動オプションがあるかと思いましたが、見つかりません
でした。
どうしたものかなあ。X環境はかさばるので、できたら導入したくないのですが。
491 名前:
Windowsのコマンドライン用にも関わらず、
Cygwinでコマンドを呼びだすとLinuxふうの環境変数が渡されちゃうからそのエラーが出るのでは?
当然Xクライアントにもならないとオモ
やるとしたらCygwinのbashでWindowsのアプリケーションを明示的に呼び出す方法があれば使うくらいじゃね?
492 名前:
て答えるに値しないぐらい基本的な質問ですか?(汗
493 名前:
自分のところで試したら普通に動いたけど…。
Rのバージョンはいくつ?こちらは少し古くて2.2.1だけど
CygwinのbashからRと打つだけで動いてplotもできたよ。
Xウインドウ環境は入れてないよ。
パスはWindowsの方の環境で設定されてるよ。
494 名前:
ありがとうございます。分かりませんが、おそらくそれで正解のような気がし
ます。問題は、もう私の今の技術力では解決不能ということです。うう...。
とりあえずは諦めて、Windows標準のCMDから立ち上げます。ありがとうござい
ました。
495 名前:
>>493
~ $ R --version
R version 2.4.1 (2006-12-18)
こんな感じです。
そちらでは
> plot(1:10, 1:10)
は表示されますか?
実はこちらでは、上の式はダメですが、R-tipsの28ページに載っているrglの図
2.24 のグラフは、不完全ながら表示されました。plotがすべてダメというわ
けではないようです。
単純に、バージョンを上げたら解決するのかも知れません。
すみませんが、今日はこれでPCを離れます。失礼します。
496 名前:
~ $ R --version
R version 2.6.0 (2007-10-03)
Copyright (C) 2007 The R Foundation for Statistical Computing
ISBN 3-900051-07-0
497 名前:
Cygwinの方に問題があるのでしょうかねえ。
こちらのものはだいぶ前に入れたので古いです。
たとえばbashのバージョンは2.05b-16でした。
(今は3.2.25-17なので相当古いですね…。
古い方がうまく動くとかでしょうか?)
498 名前:
ありがとうございます。
ちょっと分かりませんが、やはりCygwinから起動するとXクライアントになっ
てしまうのかもしれませんね。
まあ、それっぽい情報はぜんぜん見つからないのですが。
他に最新のCygwinとRをお使いの方はいらっしゃいませんか?
もしかしたら、ESSを使えば問題ないのかな、と思ったりしますが。
499 名前:
http://kavaro.com/mediawiki/index.php/R_project%27s_GNU_R_for_Maemo
動くのかしら?
500 名前:
ESSも多分ダメだろw
ありゃshellだから。
ESSならMeadowでやるとすんなり使えるけど。
501 名前:
コマンドって無い?
(所謂、統計本の巻末に載っているようなカイ二乗値の
表で任意の自由度、危険率の境界値が得たい)
これって自分で式を組まなければいけないのでしょうか。
502 名前:
cygwinでRはできる? なんでも掲示板アーカイブ(1)
http://www.okada.jp.org/RWiki/?%A4%CA%A4%F3%A4%C7%A4%E2%B7%C7%BC%A8%C8%C4%A5%A2%A1%BC%A5%AB%A5%A4%A5%D6%A1%CA%A3%B1%A1%CB#content_1_4
Cygwin とR のインストール
http://web.archive.org/web/20060313154358/http://www1.accsnet.ne.jp/~gen/R-rev/cygwin-R.html
http://web.archive.org/web/20060313154421/http://www1.accsnet.ne.jp/~gen/R-rev/cygwin-R.pdf
Cygwin00/Section10 - Windowsで始めるBioinformatics
http://tetralog.mydns.jp:8080/biowin/index.php?Cygwin00%2FSection10
tetraの外部記憶箱 - R on Cygwin
http://tetralog.mydns.jp:8080/t/?date=20060324
> ポイントは、以下の通り。
> Rのインストール先をCygwinと同一にする事。
> Rの設定ファイル(Rconsole)をホームディレクトリに置いておく。
> Rterm.exeを使う場合には、文字コードをShift-jisにする事。ターミナルに
> rxvtを使っているのであれば、「$ rxvt -km sjis」とするか、“.Xdefaults”
> 辺りに「Rxvt.multichar_encoding: sjis」と書き込んでおく。
---------------
ということで、再度挑戦してみました。
・Rの古いバージョン R 2.2.1 (December, 2005)を利用
http://cran.md.tsukuba.ac.jp/bin/windows/base/old/
・Cygwinは最新
・c:\cygwinにRをインストールする
503 名前:
結果は、やはりダメですた...。
~ $ R
Fatal error: you must specify '--save', '--no-save' or '--vanilla'
上の記事では 2006-03-24 に成功しているのですから、それより昔のバージョ
ンを使ってみたのですが、うまく行きませんでした。Rのバージョンのせいでは
なかったようです。
また、CygwinからだとXクライアントになってしまう、という線も薄くなってき
ました。
-----
それゆけBioinformatics: Cygwin でR & Bioconductorを使う2
http://bioinfo-goto.seesaa.net/article/565719.html
この記事では、>>502の記事とは違い、
R を c:\cygwin にはインストールして
いませんが、問題なくRterm が動いているようです。ちょっと古い
(2004-09-08) 記事ですが。
ますます分からなくなってきました。
504 名前:
どこの設定で変えれるのでしょうか
R 2.2.0を使っています
505 名前:
options(digits=好きな数字)
506 名前:
>>505はどうでしょう?
507 名前:
自分は詳しくないんでアレだけど、
もしかしたら >>393->>506
の多倍長整数ライブラリしかないかも。
もしそうなら結構不便ですね。
この辺はPythonでNumpyとかを使ってた方が楽だった。
508 名前:
ありがとうございました。
ちょっと不便ですね。
509 名前:
まだ解決しないんですね…。
CygwinからRguiと打つとWindowsのRは起動するのでしょうか?
それともそれもだめなのでしょうか?
また、起動オプションで--no-saveだけで動くなら起動時に
画面に無保証であるとかの文言は日本語で出るのでしょうか?
510 名前:
511 名前:
>>500
Meadowは重くて、あまり好きではないのです。
>>500
> CygwinからRguiと打つとWindowsのRは起動するのでしょうか?
これはちゃんと起動します。plot(1:10, 1:10)も問題なく実行できます。
> また、起動オプションで--no-saveだけで動くなら起動時に
> 画面に無保証であるとかの文言は日本語で出るのでしょうか?
はい、日本語でちゃんと出ます。
>>500
パスが通っていなければ、そもそもエラーどころか起動しないのでは?
Rguiは問題なく起動できますし。
512 名前:
でもなんでRGUIをcygwin経由で呼び出すのかがわかりませんですね
513 名前:
514 名前:
パスがちゃんと通っているかの確認だけ。
さて、Cygwinをバージョンアップしてみたが、Rは問題なく動いた。
(Rは2.2.1のまま)
>>512
setで見る限りLIBの設定などないのだが、ちゃんと動いてる。
さらで入れるのとバージョンアップでは何か違うのか?それとも他の原因か?
515 名前:
setってwindowsのほうの話でしょ
516 名前:
bashのスクリプトファイル作らずに単純にCygwinからコマンド入力してるだけ?
517 名前:
qchisq(0.05,i)
518 名前:
とりあえず、bashから
$ export
で出る環境変数一覧、晒してみては?
ただし、個人情報が入る可能性もあると思うので書き込む際は慎重に。
519 名前:
exportでもほとんど同じ。LDに関するものはなし。
さて何が問題なのやら。
520 名前:
初心者の質問なのにありがとー。
おかげで助かりました。
521 名前:
見落としてた。すまん。
> a <- 400000000
> a
[1] 4e+08
> formatC(a,format="fg")
[1] "400000000"
> formatC(a,format="fg",big.mark=",")
[1] "400,000,000"
確かに4e+08はScientific notationかもしれないが、分野によっては
400000000や400,000,000の方が歓迎されることには同意。
522 名前:
こちらは現在、Cygwinが最新、R が 2.2.1。>>514氏
と変わらない環境のはず
です。しかし、こちらは動かない。Cygwin と R のバージョンに問題があるの
ではなく、私の環境に問題がある可能性が大きくなってきました。
ちなみにこちらは、Cygterm と PuTTY を使っています。
>>514
$ export で出てくるものは、どう見ても R と関係ないものばかりでした。
>>514氏の環境では、その状態でちゃん
と動いているそうですが。
全部で80行以上ありますが、さらしますか?
>>514
たしかに、bash から Rterm を直接呼び出しているだけです。
スクリプトファイルを作る必要があるのですか?
どのようなものでしょうか?
http://web.archive.org/web/20060313154358/http://www1.accsnet.ne.jp/~gen/R-rev/cygwin-R.html
> また、Cygwin の画面から Rterm.exe と入力し、ターミナルモードで起動する
> ことも出来ます。
とあるので、シェルスクリプトなど必要ないと思っていました。
523 名前:
計算したいと思っています。今は以下のようにやっているのですが、
なにかもっとよい方法はないでしょうか。
a <- c(1,2,3,4,5,6,7)
b <- c(100, a) # 100は適当な数字。
bb <- c(a, 100)
bb / b
524 名前:
やりたいことがよくわかんない。
> a <- c(1,2,3,4,5,6,7)
> a[2:7]/a[1:6]
[1] 2.000000 1.500000 1.333333 1.250000 1.200000 1.166667
↑これを計算しているだけに見えるんだけど。
525 名前:
> hoge <- function(x) {
+ x[2:length(x)]/x[1:length(x)-1]
+ }
> hoge(a)
[1] 2.000000 1.500000 1.333333 1.250000 1.200000 1.166667
526 名前:
ありがとうございます!
なるほど、、、ついついforループ等で回して、
などという処理を考えてしまったのですが、
a[2:7]/a[1:6]
というのは全然分かりませんでした。
527 名前:
コマンド入力による起動はただの偶然でしょうね
bachでしっかりpathを設定してexportするだけで問題は解決するんじゃないでしょうか
528 名前:
R2.5.0 Cygwinは最新版ですね
plot(1:10,1:10)も問題なく開きます
ただしENTERキーのテンキー側は使えなくなるようです
これはプログラム上の問題でしょうかね
529 名前:
RやCygwinにアクセスする権限を持っているでしょうか
530 名前:
それがこの問題を引き起こす根本的な原因なのかははっきりと断言できません。
531 名前:
>>527
パスは通っているのです。R のインストール先を c:\cygwin 自体にしている
ので、Rterm.exe 等は c:\cygwin\bin に置かれます。Cygwin環境では /bin
となる場所ですね。
ところで不思議なのは、
~ $ which Rterm の結果が
/usr/bin/Rterm となることです。
/bin/Rterm となるかと思ったのですが。
もしかしたら、これがトラブルの原因と関係あるかもしれません。
ただ、~ $ which Rgui も /usr/bin/Rgui なのに、問題なく立ち上がるので、
関係ないのかもしれませんが。
532 名前:
mountで調べると良いでしょう
cygwin内にインストールしていなくても/cygdrive/以降に通常のディレクトリを入れて
PATHを通せばCygwinからアクセスできます
533 名前:
すみません、確かに関係ないようですね。失礼しました。
http://www.sixnine.net/cygwin/cygwin-doc/binlib.html
~ $ mount
C:\cygwin\bin on /usr/bin type system (binmode)
...
~ $ /bin/Rterm.exe
Fatal error: you must specify '--save', '--no-save' or '--vanilla'
534 名前:
R も cygwin も使ったことないのですが、ちょっと興味を持って
R の調べものをしてたら目にとまったので。
>>488
> ~ $ /bin/Rterm.exe
> Fatal error: you must specify '--save', '--no-save' or
'--vanilla'
エラーメッセージ中で指示されてる --save だの何だのという
オプションはスクリプトを実行する時に使うオプションのようですが、
このメッセージが出たということは R は tty を勘違いしてる。
スクリプトを実行するときは
$ R --save < a.r
のような感じでリダイレクトしますよね?そういう状態だと R は勘違いをしてるわけです。
例えば --save オプションを付けて plot 命令を実行したとき、
そのフォルダに何か保存されてませんか?
原因は R にあるのではなく、恐らく cygwin のほうにあって、
多分 cygwin の isatty がアヤシイと思いますよ。
回避策は知りません。どうしても解決をしたいのなら cygwin に詳しい人のところに行って
質問するほうが良いかも知れませんね。
535 名前:
536 名前:
だからさ。
・オプションを付けずに実行するとエラーが出る。
・オプションを付けて実行すると動くことは動くがグラフは表示されてない。
というんでしょ。 tty の勘違いの典型例。
537 名前:
ありがとうございます。
確かに、Rterm --save で plot(0:10, 0:10)を実行したところ、
カレントディレクトリに Rplots.ps というファイルが出来ていて、
GostScriptで開いたところ、まさにそのグラフのPostScriptファイルでした。
isatty はよく知らないので、ちょっと勉強して考えてみます。
538 名前:
あ、いや、isatty というのはプログラムの中から呼び出す C のライブラリ関数なわけで。
知らないなら知らないでもいいかと。
問題点は
「R がリダイレクト (<のこと) ではないのに、リダイレクトと勘違いをしてる」
というところにあるかもしれない、ということだけ理解していただければ。
ちょっと調べてみたら cygwin を使う人は emacs を動かすとき
$ CYGWIN=tty emacs
とするらしい。これでうまく動くかどうかは望み薄かもだけど、
そういうふうに環境変数の設定でなんとかできるかも知れません。
上の方で cygwin + R が上手く動いているというかたがおられるようなので、
お願いしてみて、環境変数を付き合わせてみるというのも一つの手カモ。
539 名前:
540 名前:
export CYGWIN=servere
の設定をするとあるね。2004 年ごろの日記だったけど。
541 名前:
http://phi.med.gunma-u.ac.jp/memo/20071115.html
> 2chへの書き込みはしたくないので,ここにメモするが,整数扱いさせればいい。
> as.integer(400000000)を付値した変数は, printさせても4e+08とはならず,
> 400000000となる。この場合,例えば,as.integer(3)を掛けても整数型のまま計
> 算できるが,as.integer(400000000)*as.integer(400000000)は桁溢れを起こして
> NAとなってしまうので注意が必要。整数型を超える大きさの数になってしまう場
> 合は,以前メモした多倍長演算ライブラリgmpを使うしかないだろう。
だそうですよ。
542 名前:
Cygwinの起動方法が違うのかも。
こちらはPuTTYではありません。
よく知らないのですが、バッチファイルで
bash --login -i
というように起動しています。
543 名前:
as.integer(400000000)
でもいいだろうし,最近のバージョンだと
400000000L
でいいじゃない?
発言の糸川からぬ。
> x <- 400000000L
> x
[1] 400000000
> as.integer(400000000)
[1] 400000000
> 400000000L
[1] 400000000
544 名前:
545 名前:
546 名前:
まあ確かに時代遅れだな。でもメインに解析に使うマシンではないので
基本的なことができればいいからな。
Rはインストールする度にパスの変更が必要になるので手軽に
バージョンアップしにくいんだよね。
(それでも必要なマシンはバージョンアップするけど)
547 名前:
x2)∈[-5,5]×[-5,5]の範囲に1000個、図示したいんですが、Rだとどうやってできますか?
x1=seq(-5,5,len=1000)
x2=seq(-5,5,len=1000)
plot(x1,x2)
みたいにしたんですが、1次関数みたいになってしまった、欲しいのと違います。
・・・・・・・・・・・・・・・・・
・・・・・・・・・・・・・・・・・
・・・・・・・・・・・・・・・・・
・・・・・・・・・・・・・・・・・
・・・・・・・・・・・・・・・・・
・・・・・・・・・・・・・・・・・
こんな感じにしたいのです
548 名前:
理論的には
x1=seq(-5,5,len=1000)
x2=seq(-5,5,len=1000)
plot(x1,x2,type="n")
for (i in 1:1000) for (j in 1:1000) points(x1[i],x2[j])
とすればできるが、PCがうんともすんとも言わなくなるかもね。
100x100でもそれなりに時間かかるからそれから増やしてみたら。
また、1000x1000ならほとんどまっくろになると思う。
549 名前:
実は、2変数のnewton法で、初期値に対する収束値の関係を2次元で図示(どの値に収束するかを色等で明示せよ)するっていうレポをやってるんです。
問題では、(x1
x2)∈[-5,5]×[-5,5]の範囲に10000個初期値をとってやるんですが、その10000個に対する収束値はプログラム
で求まってます。
これってどんな風に図示したらいいんですか?収束値によって初期点を色でわけるっていうのを考えたんですが、いまいちうまくかけません。
プログラムの結果は
初期点 収束値
-5 -5 x1 x2
・
・
・
・
・
5 5 x1 x2
みたいにテキストに保存されてます。
ちなみに収束値は解いてるのが2次なんで、2種類しかないです
550 名前:
プロットの問題ではなく色分けの仕方が分からないの?
551 名前:
そうです!
552 名前:
たとえば
x1^2+x^2=6
とかの円をかきたいんですが
553 名前:
色分けって
plot(iris[,1],iris[,2],col=ifelse(iris[,5]=="setosa","red",ifelse(iris[,5]=="versicolor","blue","green")))
のこと?
554 名前:
> x <- (-20:20)/8
> y <- sqrt(6-x^2)
Warning message:
計算結果が NaN になりました in: sqrt(6 - x^2)
> plot(c(x,x),c(y,-y),type="l")
> symbols(0,0,circles=sqrt(6),add=TRUE,inches=FALSE)
なかなか興味深い。
555 名前:
きれいにつなげようと思ったら
x <- (-20:20)/20*sqrt(6)
y <- sqrt(6-x^2)
plot(c(x,-x),c(y,-y),type="l")
だな。
556 名前:
bash@cygwinにて
cd /usr/local/bin
ln -s /cygdrive/c/Program\ Files/R/R-2.6.0/bin/R.exe
としてうごかんか?
リンクが張られるからこれでRは動かしてるよ。
セーブがされないのはcygwinとwindowsのパスの取り扱いの違い
が悪さをしてる臭いよ。cygwinは"/"だけどwindowsは"c:\"だか
らね。cygwinとwindowsを混在させて使うときに頭が痛い問題な
のよ。
557 名前:
558 名前:
あるのは知ってるけど、意図的に使ってない。
559 名前:
そりゃよかったね
560 名前:
多分Cygwin用に何か足されてると思うけど
561 名前:
どうやったら使えるのですか?
562 名前:
vmware+ubuntuの方でも使ってるけど。cygwinって、
コンパイル速度を見てても遅いんだよね。windows(without cygwin)
版とcygwin版との比較はしてないけど。あとは、vistaでx11が使えな
いという問題もあるが。
563 名前:
564 名前:
C直下にbinだのディレクトリ作ってそこにインストールするけどねえ
ディレクトリ名でけっこう問題出るし
そういうアプリを使うときはcygwinのshellから叩くと一緒に扱えて便利だなあ
565 名前:
うん。cygwinとwindowsってその辺がイライラする問題だよな。
だから、基本はvmware+ubuntu+emacs(ess)でやってる。ディス
クアクセス以外はほとんど速さが変わらないから。unix系はunix
上の方が安心して使えるわ。
入れ方は簡単で、vmware playerとubuntuの日本サイトからvmware
用の仮想ファイルを取ってくればそれでおしまいです。そこから、
sympaticを使ってインストールすれば2.5になるし、ソースからコン
パイルするもよしです。
566 名前:
あれ、まだハンパだから
567 名前:
vmware player + ubuntuの組み合わせでさらに便利にするのはvmware tools
を導入することかな。ちょっと敷居が高いけど、ここまでできれば、
windows/ubuntuでドラッグ&ドロップ、カット&ペーストができるようにな
る。マウスカーソルの移動も全く問題なくなるし。windowsのアプリの一つと
してubuntuが使えるね。大体320M~512Mあればかなり余裕なんで、windows
vista+2Gの環境ならば余裕がある。vmware tools の導入方法は調べたら紹介
してるところが多いから見てみればいいです。
568 名前:
ちなみに、メモリ1Gの環境+windowsならば320Mで十分だよ。
設定ファイルを少し書き変えなきゃいけないと思うけど。
569 名前:
統計学なんでもスレッド7
http://science6.2ch.net/test/read.cgi/math/1193183539/70-72
と重複になってしまうのですが、こちらで聞いた方が良いと判断し、
書き込みしました。
■Rで学ぶデータマイニングII
http://www.amazon.co.jp/dp/4861671981/
を買おうかどうしようか迷っているのですが、
使った方はいらっしゃいますでしょうか。
卒論の時系列解析の参考にしようかと思っています。
SとRは1年間大学で学び、また web
の R-tips も活用しています。
上記のIは買っていません。
570 名前:
Iは良い本だよ。
IIも買う予定。
571 名前:
レスありがとうございます。
レビューはネットに1つも見つからなかったので、他の方の意見が聞けてありがたいです。
明日もう少し立ち読みして、購入するかどうするか決めようと思います。
572 名前:
正直「九天社が出版している」ってだけで止めた。
ここは「出したい」って言えば内容の吟味なんか無しで何でも出版する模様。
この出版社の本はろくすっぽ編集が入らない。
従って巻末の索引なんかも出鱈目な場合が多い。
別の出版社から本が出るまで待つ。
何冊も「九天社」の本を買ったことがある経験からの一言。
573 名前:
貴重な意見ありがとう。
とりあえず、本屋で1時間ほど株式の時系列解析の項を読んで、
購入を決めた。
また報告に来る
574 名前:
おおよそどんな感じの内容か俺も知りたい。
R関係の本って「Rによる○○統計学」みたいな立派な題名が
ついてても、実際には Introduction to R や R-Tips の焼き直し
みたいな内容のものが多いからなあ。
576 名前:
ついてても、実際には Introduction to R や R-Tips の焼き直し
みたいな内容のものが多いからなあ。
同意。
正直、「R云々」と書いた本買うより、「S PLUS」って書いてある本の方が役に立つ。
R関係の本の出版数が増えたのは喜ばしい事だが、内容的にはまだまだ、だと思う。
「自主制作本」とか「ブログを纏めただけの出版」のレベルは越えていない。
577 名前:
そうか、お前もだんだんわかるようになって来たんだな。とうさん嬉しいぞ。
その調子でガンバ!
580 名前:
どこかお勧めの例題あつかってるとことか教えてもらえませんか
581 名前:
plot3Dを使って、Graph-Rのようなカラー表示できる
方法があったら教えてください。
Grap-Rだと、130万のテータをプロットしたとき
重いし、他のプログラムが落ちることがあり、
移行を考えました。
ただ、今Rで、
> plot3d(y[,1:3], size=5, pch=30)
すると、真っ黒状態で、わかりづらいのです。
582 名前:
>ついてても、実際には Introduction to R や R-Tips の焼き直し
>みたいな内容のものが多いからなあ。
基本手順がおなじならしょうがなくね?
つーか、Rさえほとんど使ってない奴とかあるよな
583 名前:
series_plus()関数が、入力される数列が大きくなると遅いです。
forは遅いから使うな、とかapply系を使えとか言われたのですが、
(このプログラムに対してではないですが)
以下のプログラムを改良する方法を教えてください。
> series_plus
function(x) {
len <- length(x)
y <- numeric(len)
for (i in 0:(len-1)) {
y <- c(numeric(i),x[1:(len-i)]) + y
}
y
}
> x <- rnorm(10000)
> plot(series_plus(x))
584 名前:
585 名前:
例えば, ylim = c(0,100) でOKかと。
586 名前:
ありがとうございます!
これでブラウン運動を観察しやすくなりました。こんな感じです
for (i in 1:10000) {
plot(series_plus(rnorm(1000)),type="l",ylim=c(-100,100))
}
series_plus()はちょっと前のカキコの関数です。
587 名前:
demo(graphics)
を実行してみた?
588 名前:
http://www1.doshisha.ac.jp/~mjin/R/17.html
のほぼ中央の部分
② 判別関数を求める
~中略~
この判別係数を用いた第1判別関数を次に示す。
=
-0.592x1 -1.842x2 + 1.653x3 + 3.564x4 -c
x1,x2,x3,x4はそれぞれirisデータの変数~を示す。
とありますが、この場合のx1はSepal.Lengthにある5.992、5.024、6.504のどれになるんでしょうか
589 名前:
なぜそれらの数値を使おうと思うのか?
x1とは生データのことだろ。
590 名前:
ありがとうございます。
みてみました。さすがにキレイだ。
cumsum()というのを使えばよかったんですね。
僕は、ベクトルを1つずつずらしながらたし算してしまったけど、、、
591 名前:
linuxのRからplot()の結果を印刷するにはどうすればよいですか?
592 名前:
postscript(file="|lpr")
593 名前:
でも、いかのようにしたのですが、プリントされません(泣)
> postscript(file="|lpr")
> matplot(x, type="l")
なにかまちがってますか?
594 名前:
dev.off()
っていうか、入門書を一度読んだ方がよいのでは。
596 名前:
ありがとうございました。
はい、読んでみます。でも、もうちょっとだけ。
Rのコマンドをファイルに書いておいて、それをRで読み込んで実行させるには
どうすればよいですか?
load(filename)とか、やってもだめでした。
597 名前:
load()はデータセットを読み込むコマンドです。Rスクリプトを読み込むには、source()を使います。
本当にマジで、オンライン文書でよいので入門書を読んだ方がよいと思う。または、30分程度誰
かにレクチャーしてもらった方がよいと思う。
ちなみに、普通のRユーザはsource()を使わずに、エディタからRを実行します。
598 名前:
ありがとうございます!
R-tipsとかは読んだんですけどね、、、(読んだつもり?)
本は読むようにします。
> ちなみに、普通のRユーザはsource()を使わずに、エディタからRを実行します。
まわりのRユーザは全員windows版を使ってるのですが、確かにエディタから実行
してました。でも僕はノートパソコンから速めのマシンにsshして、ターミナル内で
Linux版のRを実行しているので、それができませんでした。
なので、教えていただいたsource()コマンドは便利に使えそうです。
ありがとうございました。
599 名前:
バイナリパッケージ(フルパッケージ)の2,3倍遅かった。
不思議な事に、どちらのRを起動しようと(もちろんコマンドラインで./R)、
速さは最後にインストールしたバージョンが何かで決まる。
つまり、本来違うバージョンが共存できることになっているのに、そうなっていない。
どこかの共有部分が毎回上書きされているのか?分かる人いますか?
ちなみに、BLASシェアドラブラリを有効にしてるけど、
ライブラリは個々のバージョンのディレクトリにビルドされていたので、これではないと思う。
600 名前:
バイナリインストール後の状態を見ると、
/usr/lib/libatlas.dylib
/usr/lib/libblas.dylib
/usr/lib/libcblas.dylib
の全てが、"Current"バージョンの libBLAS.dylib のシンボリックリンクだった。
自前のビルドが遅かったのは、atlas, lapackを自分でビルドしていなかったから、当然だと思うが・・・ここまで遅いとは。
Appleの/lib/libcblas.aなどを使っていたのか、それともR内部の別の汎用ルーチンを使っていたのか?
601 名前:
Linuxユーザならなおさらemacs -nw +essを使いましょう。
602 名前:
R-tipsはマニュアルと言うかオナニー本だからwww
編集がロクに入らないと出版物は「寄稿者の自己満」で終わってしまう、と言ういい見本
603 名前:
また、円の方程式と楕円の方程式から交点を直接求めることはできないのでしょうか
606 名前:
607 名前:
608 名前:
あ、そうか。つまり、
cumsum(rnorm(1000))+x0
ということですか?
609 名前:
(dZtは正規分布のN(0,dt))
がAR(1)と説明してあったので、以下のように書いてみました。
x0は0としています。
ar1 <- function(mu,sig,dt,T,fai) {
x <- numeric(T)
for(i in 1:(T-1)) {
x[i+1] <- -1*fai*(x[i]-mu)*dt + rnorm(1,sd=sqrt(dt))
}
return(x)
}
Rらしくないとおもうのですが、これってもっとRらしくかけませんか?
(Cで書いたみたい)
610 名前:
それはAR(1)のMA表現に近い感じだけど違うよ。
係数が考慮されてないし、n→∞でも初期値の影響が残っちゃう。
Rっぽいというか、かなりひねくれてるけど
ar1=function(a,n=100,x0=0,sigma=1)
{
 X <- diag(n)
 e <-
c(x0,rnorm(n-1,0,sigma))
 ind <- row(X)-col(X)
 X[lower.tri(X)] <-
a^ind[lower.tri(ind)]
 drop(X%*%e)
}
a: AR(1)の係数
n: 生成するサンプル数
x0: 初期値
sigma: イノベーションの標準偏差
とかでも。
結局計算時間はfor文回すのとかわんないだろうから
定義通りの>>608みたいのが分かりやす
いくていいんじゃないかな。
他に良い方法あるならオレも知りたいが。
611 名前:
ar1 <- function(a, n=100, sigma=1, init=0)
{
 X <- diag(n)
 e <-
c(init,rnorm(n-1,0,sigma))
 X <-
a^(row(X)-col(X))
 X[upper.tri(X)] <- 0
 drop(X%*%e)
}
はメモリ食いの上に計算が遅く、しかもひねた書き方なのでボツにします。
以下のように素直に書くのが計算も速いし、意味が分かりやすいので一番でした。
ar1 <- function(a, n=100, sigma=1, init=0)
{
 x <- c(init, rep(0,
n-1))
 for(i in seq(2,n))
 x[i]
<- a*x[i-1] + rnorm(1,0,sigma)
 x
}
要素毎アクセスしてるのはやはり気にくわないけど。
612 名前:
もしnbsp見えてたらそれはミスなので無視してくれ。
ar1 <- function(a, n=100, sigma=1, init=0)
{
x <- c(init, rep(0, n-1))
for(i in seq(2,n))
x[i] <- a*x[i-1] + rnorm(1,0,sigma)
x
}
613 名前:
ありがとうございます。
> a <- ar1(0,n=100000)
> ar(a)
Call:
ar(x = a)
Order selected 0 sigma^2 estimated as 0.9985
やっぱりAR(1)ですね。つかわせてもらいます。ありがとうございました。
614 名前:
ほんとに何度もすまんが、最もRらしい書き方が分かったよ。
arSeries <- function(a, n=100, sigma=1, init=0)
{
x <- c(init, rnorm(n-1,0,sigma))
filter(x, a, "recursive")
}
おそらくこれがR的にベストでしょう。
係数aはベクトルで与えても可(つまり何次のモデルでもOK)。
> ar(arSeries(c(0.2,0.5,0.3),1e5,sigma=8),order=3,method="burg")
Call:
ar(x = arSeries(c(0.2, 0.5, 0.3), 1e+05, sigma = 8), order.max = 3,
method = "burg")
Coefficients:
1 2 3
0.1969 0.5016 0.3016
Order selected 3 sigma^2 estimated as 63.67
616 名前:
その時、取りうる全ての要素を代入したfの和
∑_{x∈{0,1}^n} f(x)
を計算したいんですが、どのようにプログラムを組めばいいのかぜひどなたか教えてください。
お願いします。
617 名前:
fの具体的な説明がないよ。( f:{0,1}^n→ ?)
もしかすると∑_{x∈{0,1}^n} xのことを言ってるのかな?
まず"1+1=2"なのか"1+1=0"なのかはっきりしたほうがいい。
618 名前:
引数で関数fを渡すとか…たぶん考えすぎだろうが。
620 名前:
すいません、fは{0,1}^nから実数にうつす写像です。
もっと詳しく言うと、f=∑w_{ij} xi xj (w_{ij}はある実数) です。
621 名前:
了解。勘ぐりすぎてたか。
つまり、W=(w_ij)を適当に与えたときのx^TWxを
{0,1}^nにおける2^n個すべての要素のf(x)に関して和をとればよいってことかな?
Wが対称行列などの指定はとくになし?
愚直に書けば2^n回ループまわすことになるけど、
頭使えばほとんど計算機の出番なさそう。
例えばxi xj=1となるものを{0,1}^nのすべてについて調べたとき
その個数がc_ijならΣc_ij w_ij = ∑_{x∈{0,1}^n} f(x)になる。
つまりC=(cij)さえ分かればあとはsum(C*W)が答え…とかどうですか。
まだ考えてないが、cijはnの関数になりそう。
思いつきで書いてるから間違いがあったり、説明が分かりづらいかも。
しかしこういう計算をRでするのって、何に使うのか興味あり。
622 名前:
ありがとうございます。
ボルツマンマシンというものの計算をRでやっているところです。
ところで
>愚直に書けば2^n回ループまわすことになるけど、
とありますが、これはどの様にプログラミングを行えばよいのでしょうか?
f=exp(∑w_{ij} xi xj+∑θ_{i} xi)
というものも計算しなくちゃいけないのですが、この場合だと上の方法だとできないので、
ぜひご教授お願いします。
623 名前:
Rで愚直に書くのは案外難しかった。
Rはこういう計算向かないのかなあ…。
sumf <- function(n, FUN, set=c(0,1))
{
X <- expand.grid(replicate(n,set,FALSE))
sum(apply(X, 1, FUN))
}
ただしこれが使えるのはせいぜいnが10程度。
使い方は、最初の関数f(x)=x^TWXなら
> f <- function(x, W) t(x)%*%W%*%x
> W <- matrix(1,4,4)
> sumf(4, function(x) f(x,W))
[1] 80
とか。
624 名前:
上のやりかたみたいに一気に(0,1)^nの元を全部生成すると
n×2^nの行列ができるので、nがちょっと大きくなれば
すぐメモリから溢れちゃいます。
となるとfor文の中でひとつひとつxを生成しながら
計算するほうが望ましいけど、Rで毎回それを作るのは面倒だね。
n<=32なら無理矢理
sumf2 <- function(n, FUN, set=c(0,1))
{
res <- 0
for( i in seq(2^n)){
x <- as.numeric(intToBits(as.integer(i))[seq(n)])
res = res + FUN(x)
}
res
}
なんかもありか。ふざけたスクリプトになってきたが。
やはり愚直に書いた指数時間アルゴリズムは
まったく実用的でないことがよくわかります。
625 名前:
626 名前:
なるほどx_i x_j = 1のとき同時発火ね。Σf(x)は分布を求める部分かな。
どうやら正攻法では指数時間は不可避のようです。
最初にいってた単純な二次形式の和だけならまだやれそうだったが。
ともかく一度定義通りに計算してみたいだけなのかな。
627 名前:
そのプログラムを利用してボルツマンマシンを作ってみたいと思います。
628 名前:
629 名前:
x a1 a2
1 2.419707e-01 1 1
2 5.399097e-02 1 1
3 4.431848e-03 1 2
4 1.338302e-04 1 2
5 1.486720e-06 2 1
6 6.075883e-09 2 1
7 9.134720e-12 2 2
8 5.052271e-15 2 2
こういう形のデータがあったとして(a1,a2 は因子です),
各要因の組み合わせごとの x の平均を出す簡単な方法ってありますか?
630 名前:
おもしろそうなので考えてみた。でも for文を使うのしか思いつかなかったorz
> data <-
data.frame(x=round(runif(8),2),a1=as.factor(c(rep(1,4),rep(2,4))),
+ a2=as.factor(c(1,1,2,2,1,1,2,2)))
> data
x a1 a2
1 0.73 1 1
2 0.31 1 1
3 0.53 1 2
4 0.69 1 2
5 0.80 2 1
6 0.88 2 1
7 0.94 2 2
8 0.39 2 2
> for ( i in levels(data$a1)){
+ for (j in levels(data$a2)){
+ y <- mean(data[(data$a1==i) & (data$a2 ==j),1])
+ print(c(x.mean=y,a1=i,a2=j))
+ }
+ }
x.mean a1 a2
"0.52" "1" "1"
x.mean a1 a2
"0.61" "1" "2"
x.mean a1 a2
"0.84" "2" "1"
x.mean a1 a2
"0.665" "2" "2"
631 名前:
> a3 <- paste(data$a1,data$a2)
> for (i in unique(a3)){
+ print(paste(i,"mean = ",mean(data[a3==i,1])))
+ }
[1] "1 1 mean = 0.52"
[1] "1 2 mean = 0.61"
[1] "2 1 mean = 0.84"
[1] "2 2 mean = 0.665"
632 名前:
組み合わせって言うけど、1-2と2-1は異なるグループと考えていいの?
> label <- factor(paste(data$a1,data$a2,sep="-"))
> label
[1] 1-1 1-1 1-2 1-2 2-1 2-1 2-2 2-2
Levels: 1-1 1-2 2-1 2-2
> tapply(data$x,label,mean)
1-1 1-2 2-1 2-2
1.479808e-01 2.282839e-03 7.463979e-07 4.569886e-12
異なるグループとするならこんなんでいいと思う。
633 名前:
良い方法ありませんでしょうか?
画面上の結果をコピーして、ちまちまエディタでタブを入れることしか
思いついてないのですが・・・もっと簡便な方法ありましたら教えてください。
634 名前:
> a$loadings
Loadings:
Factor1 Factor2 Factor3
v1 0.944 0.182 0.267
v2 0.905 0.235 0.159
v3 0.236 0.210 0.946
v4 0.180 0.242 0.828
v5 0.242 0.881 0.286
v6 0.193 0.959 0.196
Factor1 Factor2 Factor3
SS loadings 1.893 1.886 1.797
Proportion Var 0.316 0.314 0.300
Cumulative Var 0.316 0.630 0.929
> library(Hmisc)
> html(a)
これで作成されたa.htmlをexcelで開くとどうなりますか?
>> 632
tapplyに気がついたので書き込もうと思ったら、すでに書かれていた。
書き込む前にリロードしてよかったよ。恥の上塗りをするところだった。
sepを"-"にしたところまで一緒だったorz
635 名前:
ありがとうございました。
html(a)ではエラーがでましたが,
html(a$loadings)はとおりました。
できたファイルを,開いてから,全選択コピー,ペーストでうまくいきました。
636 名前:
その後も調べまわりましたら、以下のurlにあった方法でも可能でした。
エクセルのテキストファイルウィザードを使えば、「スペース」&「連続した区切り文字は一文字として扱う」
をチェックしてOKです。
http://homepage2.nifty.com/nandemoarchive/cyou_nyumon/r_data_Excel_and_R.htm
637 名前:
n time
10 0.000001
100 0.00001
1000 0.001
10000 0.1
擬似的にこんなデータがあったときにn=100000の計算時間を推定するんです
638 名前:
いろいろ方法はあると思うが、たいていは
目的変数:time、説明変数:nの回帰(lm)でいいんじゃないかな。
ただ、計算時間なら二重ループが入っててn^2のオーダーなんて
よくあるから、モデルの選定は散布図見て適切なモデルを決めるか
プログラムの実装内容を多少知っている必要があるだろうか。
回帰について詳しくないので、フォローがあればどなたかよろしく。
639 名前:
http://www.taniguchitomoya.com/diary/?date=20070109
慣れた人には当たり前なんだろうけど、自分のような初心者にはとても参考に
なりました。
ただ、これもほんの導入に過ぎない気がするので、今は↓を読んでいます。
http://cran.r-project.org/doc/contrib/manuals-jp/R-lang.jp.v110.pdf
なんだ、属性が付けられるのはリストに限らないじゃないか。
641 名前:
> m <- month.name
> names(m) <- LETTERS[1:12]
> m
A
B
C
D
E
"January" "February" "March"
"April" "May"
F
G
H
I
J
"June"
"July" "August" "September"
"October"
K
L
"November" "December"
> m["I"]
I
"September"
642 名前:
> 連想配列って、名前付きベクトルじゃだめなの?
ありがとうございます。それでいいと思います。すごくシンプルになりました
ね。
ところで、数値型のベクトルにうっかり文字列を追加してしまうと、型変換が
起こって、全体が文字列形のベクトルになってしまいます。
> d <- c()
> d["hoge"] = 1
> d["fuga"] = 2
> d["piyo"] = 'a'
> d
hoge fuga piyo
"1" "2" "a"
元に戻そうとして、as.integer() を実行すると名前が消えてしまいます。
> d <- d[1:2]
> d
hoge fuga
"1" "2"
> d <- as.integer(d)
> d
[1] 1 2
これはちょっと不便ですね。名前をバックアップしておくしかないのかな。
うーん。
643 名前:
どうか、お願いします。
バリマックス回転したいんですが、エクセルしかなく、
Rをインストールしたんですがさっぱりわかりません。
数学のすの字も知らない仏文学科生ですので、プログラミング言語など
触ったことがありません。相応の入門サイトを見て手探りでやっている状態です。
あるRのサイトで
http://aoki2.si.gunma-u.ac.jp/R/src/all.R
が紹介されていて、この関数を入れるとバリマックス回転ができるそうなんですが
ここの関数を使おうとしてもなぜか正常に表示されず、使用することができません。
どうか、何か、妙案を出していただけませんか?
お願いします。
644 名前:
RSiteSearch('Varimax Rotation')
645 名前:
tol = as.double(tol), coefficients = mat.or.vec(p, ny),
residuals = y, effects = y, rank = integer(1), pivot = 1:p,
qraux = double(p), work = double(2 * p), PACKAGE = "base")
で呼び出される処理の実体は何処に格納されているのでしょうか?
また、そのソースファイルは参照する事はできますか?
646 名前:
サイコロを降って三の倍数が出たら100円もらえる
連続で三の倍数が出た場合はもらえる金額が100円ずつ加算されていく
これを50回繰り返した場合の全ての結果とその確率を表示する
こういった作業をする場合Rではどういった式を入力すればよいのでしょうか
個々の式(?)はわかるのですがそれをどう組み合わせたらいいのかがさっぱりわかりません(特に繰り返し文)
もしくはよりシンプルな操作でこういった作業が出来るフリーソフトがあったら教えてください
647 名前:
「全ての結果とその確率を表示する」の理解が正しいか分からないが
例えば以下の関数game()を定義して
game <- function(N=50)
{
dice <- sample(6,N,replace=TRUE) # サイコロをN回振る
nwin <- sum(dice%%3==0) # 3の倍数の目の個数
list(dice=dice, prob=nwin/N, money=nwin*100)
}
実行
> game()
$dice
[1] 1 2 4 6 4 2 6 1 6 3 6 5 4 1 6 4 3 3 5 3 4 2 2 3 6 6 6 3 6 3 5 6 6 4
6 2 4 1 4 1
[41] 2 6 3 1 3 6 6 4 2 5
$prob
[1] 0.48
$money
[1] 2400
繰り返し文などいらない。
648 名前:
コンパイル済みのオブジェクトだから
例えばWindows版なら関数の実体はR.dllに入ってる。
ソースはRのソースを展開したときのsrc/appl/dqrls.fに入ってる。
649 名前:
ありがとうございます。それだとサイコロをランダムに降ってから三の倍数を取り出してるんですよね
そうでなくて例えば二回目終了時だと
1/9(確率) 300円(結果)
4/9 100円
4/9 0円
こういう形で出力したいんです
650 名前:
あ、ごめん肝心な「連続で~」のところ見落としてた。
しかも全然違うことやってたな。
ハズレはまた100円にリセットでいいんだよね。
で、50回終了時の獲得金額とその確率をすべて表示ね。
難しそうだけど、もし思いついたらやってみます。
651 名前:
よろしくお願いします
先にあげた例以外でもいいので
・前の結果に影響される繰り返し
・>>650のような形式の結果表示
を考えるヒントがあればぜひご教授を
652 名前:
あんまり頭よくないみたいで、うまい策が思いつきません。
既約分数を使いたいなら表示は有理数型使うのが楽じゃないかな。
Rだとgmpパッケージがいいかも。
> library(gmp)
> as.bigq(2^50,3^50)
[1] "4194304/2674378408833789"
「繰り返し」ってサイの目6^50通り
もしくは勝ち負け2^50通りの総当たりするってこと?
653 名前:
約分できないのはずなのに約分されてるし。
3^50で桁あふれたか。
こっちが正しい累乗の使い方かなたぶん。
> prod(rep(as.bigq(2,3),50))
[1] "1125899906842624/717897987691852588770249"
654 名前:
1. 行列の行を一行ずつコンソール出力する。
2. 行列の要素を一つずつコンソール出力する。
には、それぞれどうしたら良いでしょうか?
ネタではなく、本当にわからなくて困っています。
小さい行列なら、print(a)で出力されますが、30x30とかだと、省略されてし
まいます。
655 名前:
いまいち、何に困っているのかが理解できませんが、30x30の行列を一行ずつ表示するには、
> a <- 1:900; dim(a) <- c(30,30)
> for (r in 1:30) {print(a[r,])}
これでOKです。1要素ずつなら、これを入れ子する。
でも、こんなことして何か意味があるの?
657 名前:
>>655
すみません、説明が足りなかったようです。それだと 30というサイズが決め
打ちですので、もっと汎用的な書き方を知りたかったのです。
> d <- matrix(1:900, 30, 30)
> for (r in 1:dim(d)[1]) {print(d[r,])}
これでいいのかしら。なにかもっと、インデックスを使うのではない、
他言語のfor-each文のような書き方があるのかと思っていたのですが。
658 名前:
用途を言うとアドバイスしやすいんじゃないかな。
用途がありそうといえばデバック作業かな。
659 名前:
いだけです。
インデックスを使いたくない理由は、
# 通常のfor文
for (i = 0; i < list.length; i++) {
a = list[i]
...
とやるより、
# for-each文
for (a in list) {
...
とやった方がバグが入り込みにくいからです。
R には for-each文しかないわけですが、>>657で
は、それを回避して無理やり
にfor文を作っているので、あんまり綺麗なコードじゃないなあと。
660 名前:
for(i in seq(ncol(d))) のiで列、行アクセスってRだと普通じゃないかな。
apply(d, 1, print)みたいな操作がしたいわけでもないだろうし。
今思いついたのは、例えば
for(i in data.frame(d)) print(i)
とかね。冗談みたいなコードだけど。
printだけが目的なら添え字アクセスのがよっぽど素直じゃないかなあ。
661 名前:
for(i in data.frame(t(d))) print(i)
662 名前:
> いだけです。
だったら、単純に
> d
とするか
> page(d,"print")
でいいんじゃない?うちの環境では、page()でemacsが起動する
663 名前:
>>660->>661
ありがとうございます。確かに微妙ですが、とりあえずそのデータフレームで
行こうと思います。
>>661
>d だけだと、大きな行列が省略されてしまいます。
また、実は対話環境ではなく、rJavaを介してJavaからRをバッチ的に利用して
いて、page() は使うことができません。
667 名前:
pairwise.t.testだと対応のないt検定を繰り返すから間違いですよね。
ボンフェローニ法でやろうとおもうのですが、対応のあるt検定を
普通に群間で繰り返して補正すればいいのか、それとも対応のある
t検定を行うときに全体の分散?をつかってくりかえすのか、分か
りません。田舎の本屋と図書館では限界があって助けてもらえませんか。
668 名前:
ボンフェローニを使うならどちらでも構わない。
等分散性が仮定できるなら全体の分散で
いいんじゃない?
669 名前:
ありがとうございます!ちょっと滅入ってたのでレスがとてもうれしいです。
2元配置でも3元配置でもpairwiseを使ってる人もいますね。おっしゃるとおり
ボンフェローニでやってました。
問題がひとつ解決してうれしいです♪
670 名前:
訳あって判別関数の直線式を求めたいのですが
http://www1.doshisha.ac.jp/~mjin/R/17.html
を参考にscallingと apply(Z$means%*%Z$scaling,2,mean) から式を変形して傾きと切片を求めて
判別直線の式を求めたのですが
その直線の式がどうも実際に群分けをしている直線と切片が違うように思われます(傾きはおそらくあっていそうです)
理由がわかるかたお教えください
671 名前:
よかったな。お前が嬉しければ俺も嬉しいよ。
けどな、これで極めたと思わないでくれよな。
この道はまだまだ長く険しい。お前はまだいりぐちにたっただけなのだから。
さあ、俺たちと、道の先にあるものを掴みにいこうZee
672 名前:
文字化けしてしまいます。
これはRのフォント設定に原因があるのでしょうか?
673 名前:
> ps.options()$family
の値を見て、考える。
> ?postscriptFonts
はすでに読んだ?
674 名前:
ヘルプを見ても良く分からなかったので、よろしくお願いします。
675 名前:
ソースを見ろ
> TukeyHSD
function (x, which, ordered = FALSE, conf.level = 0.95, ...)
UseMethod("TukeyHSD")
<environment: namespace:stats>
> methods(TukeyHSD)
[1] TukeyHSD.aov
> TukeyHSD.aov
function (x, which = seq_along(tabs), ordered = FALSE, conf.level =
0.95,
...)
{
mm <- model.tables(x, "means")
if (is.null(mm$n))
stop("no factors in the fitted model")
以下略
676 名前:
methods()ってのがあるんですね。ありがとうございます。
677 名前:
で、Tukey-Kramer なんですか???
678 名前:
これに入っている関数mulspe()でクロススペクトルが描画できたのですが
図からピークを値として出力するにはどうしたらいいのでしょうか
helpを読んでみてもいまいちよく解らず、identify()も使えなかったので
もしかしてデータから自分で計算するより無いのでしょうか
679 名前:
2群の経時データの有意差検定をすることになってしまいました・・・
具体的には毎日薬を飲んで,その効果を測定してあるデータです.
多変量分散分析モデルを考えていたのですが,上司からAUCでやるべしとの指示?
AUCってどんなものなのでしょうか?
どこかに,Rのプログラムなどがあれば教えていただけたら幸いです.
680 名前:
>上司からAUCでやるべしとの指示? AUCってどんなものなのでしょうか?
なぜ直接上司に聞かないの? 統計手法とは別の意味のAUCかも知れないよw。
681 名前:
同意。
そもそもAUCって統計的方法の名前そのものじゃないし。
682 名前:
R ver2.2.0を用いています。
上記の検定法の関数 dagoTest(x) は library(fBASIC) にあるとwebで見たのですが
パッケージを見てもfBASICがありませんでした。パッケージの更新を行なったのですが
fbasicはありませんでした。現在dagotestを使おうと思うと、どのパッケージを使えばよいのでしょうか
よろしくお願いします
683 名前:
fBASICはココ
http://cran.r-project.org/src/contrib/Descriptions/fBasics.html
ただR-2.4.0以上じゃないと正常に動かないかも
http://www.r-project.org/search.html
で"dagotest"を検索しただけだが。
684 名前:
>>680,681
レスありがとうございます
上司も良く分からない様子だったので,ここで聞いた次第です・・
まずは普通にやってみます
685 名前:
横からですが、>>675さんのレスがヒン
トになりました。ありがとうございます。
686 名前:
オレ涙がでてきたよ。
687 名前:
ないけど、上司って基本そういうものじゃないの?
要求が馬鹿高い割に知識は乏しくて、でも有事の責任を取るためにそこにいるって言う
あれ、もしかして俺が働いている場所ってブラックですか?
688 名前:
でなきゃココは誰に聞いてねと権限の委譲wをしないとな。
689 名前:
役に立って何より。
>>685
ヒントをあげるね。Rはインストール済みだよね?
> RSiteSearch("measures repeated")
医学系だけど、恥ずかしながらAUC(血中濃度曲線下面積)を
知らなかった勉強になったよ。
690 名前:
医学系と言っても薬学寄りでないと知らなくても不思議じゃないんじゃない。
そもそも>>689のデータは上司がその程
度なら血中濃度のデータかどうかも怪しいけどな。
691 名前:
692 名前:
はい。
693 名前:
694 名前:
http://www.okada.jp.org/RWiki/index.php?RExcel
695 名前:
それってR本体を呼び出してコマンドとして使うって意味?
(直接関数を呼べるなら便利なんだが。)
696 名前:
いつも優柔不断で指示が二転三転します、適切な指示をしてくれる上司にめぐりあいたいものです。
皆様の期待(?)通り、血中濃度のデータではありません。
>>689さんのヒントをもとに、始めます。
どうも、ありがとうございました。
697 名前:
学校じゃないなら適切な指示しかしない上司なんていないって。
適当にやらせて結果見て指示し直す、なんて普通。
不適切な指示に対して提案できて方法を示せるようになって半人前。
それが必要な場面で上司を使えるようになって一人前だ。
がんばれ。
698 名前:
699 名前:
お言葉が身にします。
ご指摘のとおり、まだまだ半人前の手前という感じです。
もっと目線を上にして、がんばります!
ありがとうございました。
700 名前:
702 名前:
factanalは珍しくRだけで書かれている。CやFORTRANで書かれたのを呼び出している
訳ではないのに、なぜ質問になるのか、よく分からない。
> factanal
function (x, factors, data = NULL, covmat = NULL, n.obs = NA,
subset, na.action, start = NULL, scores =
c("none", "regression",
"Bartlett"), rotation =
"varimax", control = NULL, ...)
{
sortLoadings <- function(Lambda) {
cn <-
colnames(Lambda)
Phi <- attr(Lambda,
"covariance")
ssq <- apply(Lambda,
2, function(x) -sum(x^2))
Lambda <- Lambda[,
order(ssq), drop = FALSE]
colnames(Lambda) <-
cn
neg <-
colSums(Lambda) < 0
Lambda[, neg] <-
-Lambda[, neg]
[以下略]
703 名前:
おぉ、ほんとだ。
> help.search("PCA")
704 名前:
おおおお。そんな方法でソースが見られるとわ。感激れす。
705 名前:
Rの仕様を理解していれば、ごく当たり前のことだよ。
matrixクラスやdata.frameクラスのRオブジェクトの名前だけを
書いてenterを押下すれば、その内容が表示されるだろ。function
クラスのRオブジェクトも同じ。そのRオブジェクトの内容が出力
される。
707 名前:
プログラミング言語としてRを学びたいのですが、おすすめの本ありますか?
オブジェクトの継承とか、そういった類いの解説があるような…
708 名前:
にはそういった話題も載っていたような気がします。
709 名前:
MASSパッケージにソース入ってるし。
オブジェクトは入ってたかシラネ
710 名前:
709
ありがとうございます。「Rの基礎とプログラミング技法」が良さそうですね。
言語仕様を理解できそうです。統計手法とか載っていなくても良いので、
他にありましたらよろしくお願いします。
711 名前:
相関の最大値(縦軸)とそのときのラグ(横軸)を
出力する方法はありませんか?
713 名前:
ってどういう意味ですか。
714 名前:
715 名前:
それから、多項ロジットモデルを選択すると
エラー: 'x' に無限値か欠測値があります
というメッセージが出るのですが、どういうことですか。
717 名前:
最終講義を先生が休講にしたから、わからない><
> また、先週行う筈だった授業の簡単な要旨を
> http://bayes.c.u-tokyo.ac.jp/~hoshino/ssa0129.doc
> に記載しておりますので、参考にしてください。
諦めて普通の線形回帰にしようかな・・・。
718 名前:
東大だろ。頑張れよw
719 名前:
原則はさらっと書いてあるけど、あくまで講義のメモだから、それだけでは分かりにくいのは仕方ない。
グラフ付きの例があると一番いいんだけどな。
つまり、ダミー変数がなければ相関が現れないけど、
ダミー変数を入れて、グループごとにグラフを書いたら、同じような傾きの並行したグラフがグループの数だけ現れる、というような。
ウェブを漁ったけど、分かりやすく説明したものがなかなか見つからなかった。
720 名前:
ダミー変数を使った線形回帰にします。
721 名前:
点を同定することは出来ないだろうか?
722 名前:
三角ダイヤグラムならまだしも、平面に投影した状態で、空間の点を指定できる原理を思いつける?
723 名前:
そうか…。3次元のプロット点をクリックして番号を出力する方法はないか…
724 名前:
プロット点はいくつある?少なければ、points()でID番号そのものをプロットすれば
判別が着くと思うけど。
725 名前:
ロット点は多いです。丁度100個です。
points 関数は以下の使い道以外にあるということでしょうか?
※赤色の + がプロットされる
plot(-4:4, -4:4, type = "n")
points(rnorm(200), rnorm(200), pch="+", col = "red")
726 名前:
申し訳ない。points()のpchにIDベクトルを与えると、最初の1文字を使って、後は無視されるようだ。
> plot(-4:4, -4:4, type = "n")
> points(rnorm(200), rnorm(200), pch=as.character(1:200), col =
"red")
素直に、text()を使った方がよさげ。
> plot(-4:4, -4:4, type = "n") #実行後、グラフィック画面をマウスで拡大する
> text(rnorm(200), rnorm(200), 1:200, col = "red", cex=.4)
pdfに出せば、Zoomしながら、目的のIDが読めると思うけど。
適当にcexの値を調整して下さい。
727 名前:
> dat <- matrix(rnorm(300), ncol=3)
> library(scatterplot3d)
> dat.3d <- scatterplot3d(dat,pch="")
> dat.2d <- dat.3d$xyz.convert(dat)
> text(dat.2d$x,dat.2d$y,1:100)
cexで重ならないように大きさを調整して、PDFに出せばOKだと思う。
っていうか、?scatterplot3dを読んだら即解決だと思うんだけど。
728 名前:
す!
やってみますので、出来たら報告します
729 名前:
えていた通りの図を出力出来ました。※ NR38 は100行3列のデータフレーム
ありがとうございました。ヘルプは読んでみましたが、なかなか難しかったです。精進します。
> scatterplot3d(NR38)
http://www.uploda.net/cgi/uploader2/index.php?file_id=0000050578.jpg
> NR38.3d <- scatterplot3d(NR38, pch="")
> NR38.2d <- NR38.3d$xyz.convert(NR38)
> text(NR38.2d$x,NR38.2d$y,1:100)
http://www.uploda.net/cgi/uploader2/index.php?file_id=0000050579.jpg
730 名前:
731 名前:
何を頑張るんだい?
732 名前:
マイリスト登録数、再生数、コメント数の3つのデータから動画の傾向を調べています。
733 名前:
今気がついた。オレに当てたレスじゃなくて、オレになりすましていたのね。
初めてオレになりすましているやつに遭遇した。なんかメリットあるの?
ところで、3dのプロットだけど、rglにはtext3d()というのも用意されている。
こっちでグラフィックを書くのもありだよ。scatterplot3dよりもいろいろで
きることが多そうだ。
734 名前:
> open3d()
> text3d(rnorm(10)*100,rnorm(10)*100,rnorm(10)*100,text=1:10,adj
= 0.5,
+ color="red")
735 名前:
f <- expression( a * x^2 );
として、この f をつかった合成関数 g(x) を微分したいのですが、
g <- expression( b * x * f );
として、D(g, "x") とやっても、f が定数として計算されてしまいます。
合成関数はどのように記述すれば良いのでしょうか?よろしくお願いします。
739 名前:
f1(x)=Af2(x)+Bf3(X)
のうちf1(x)、f2(x)、f3(x)は既知とする。
このとき、AとBを計算したいのですが、
良いパッケージを教えてください。f2(x)とf3(x)は正規分布ではなく
任意な確立モデルの関数という条件でお願いします。
742 名前:
意味がいまいちわかんないけど、数学知識ゼロの俺が答えてみる。
f1(x), f2(x),f3(x)が既知なら、x=x1, x=x2を代入して、
f1(x1)=Af2(x1)+Bf3(x1)
f1(x2)=Af2(x2)+Bf3(x2)
この2連立方程式を解けばAとBが求まると思うんだけど。
743 名前:
実は、f1~3(x)は元データを参考に最尤法で出した関数で、
・点でやった場合に元データに対して最大の精度がでるのかどうか
が個人的に分からない。
勝手に最適化してくれるならその方が良いかなと思ってた。
元関数の検定をしろと言われそうな話だが……。
あと確率モデル関数を重ねた場合の挙動が分からない。
積分で考えて多分A+B=1になりそうだ、とは思うけど。
情報後出しの上に明らかに色々勉強不足だね。吊ってくる。
744 名前:
ついでに4STEPエクセル統計という本のアドインソフトで、同様にボンフェローニで
行いました。
すると、結果が微妙にちがいます。優位さがある組み合わせは同じですが
Rで<0.01なのにエクセルでは<0.05と出たりするものがあります。
そもそもpairwise.t.testは一元配置につかうもので、2元配置に使ったこと自体
があやまってるのでしょうか。
745 名前:
pairwise.t.testのソース見たら単に一元配置の処理しかしてないことは分かるだろ。
エクセルのソフトは持ってないから知らないけど二元配置でちゃんと解析してるなら
結果が違って当たり前だな。
746 名前:
ありがとうございます!
…ということはこれは間違ってるんですね
http://cse.niaes.affrc.go.jp/minaka/R/R-anova07.pdf
Rで繰り返しのない二元配置の多重比較をする関数はないんでしょうか。
文献あさっても繰り返しなしの二元配置の多重比較は載ってないし…
747 名前:
間違ってますね。
多重比較の部分は各要因ごとにしか書いてないですからすべて一要因の多重比較ですね。
748 名前:
ありがとうございます。
繰り返しのない2元配置をRでどう多重比較したらよいのでしょう…
統計、Rなど独学で来たんですが、資料もなく
私は家政系なので専門じゃないです
もうこれ以上勉強しても分かりません
749 名前:
まず、RjpWikiで検索して
http://www.okada.jp.org/RWiki/
既出でなければ質問すればいいとおもいます。
http://www.okada.jp.org/RWiki/?%A3%D1%A1%F5%A3%C1%20%28%BD%E9%B5%E9%BC%D4%A5%B3%A1%BC%A5%B9%29
ただしネチケットには気をつけましょう。
750 名前:
ありがとうございます。
一度ここでも検索、質問させていただいたんですけど、分からなかったんです。
変身もいただけなかったので、ネチケットが悪かったのかもしれません(涙)
もう一度聞いてみます…
751 名前:
何を質問しているのか?
処理したいデータは具体的にどういうものか(抜粋で例示など)
どこは自分でわかっていて、どこはわからないか
を明確にして質問した方がイイかも
752 名前:
かけると30になるはずだが、エラーが出る。
x <- rep(1:4)
> x
[,1]
[1,] 1
[2,] 2
[3,] 3
[4,] 4
> x*t(x)
以下にエラー x * t(x) : 適切な配列ではありません
どうやったら正確な結果が出せるか教えてください。
753 名前:
t(x)*x
の間違いです。どちらもエラーなので大勢に影響は無いけれど。
754 名前:
できますよ?
> x<-rep(1:4)
> x
[1] 1 2 3 4
> x*t(x)
[,1] [,2] [,3] [,4]
[1,] 1 4 9 16
既に回転済みのxをまた回してませんか?
755 名前:
やりたいのはこういうことじゃないかな。
> x <- t(1:4)
> x
[,1] [,2] [,3] [,4]
[1,] 1 2 3 4
> t(x)
[,1]
[1,] 1
[2,] 2
[3,] 3
[4,] 4
> x %*% t(x)
[,1]
[1,] 30
%*% で内積ね。
最初に t() してるのは単に x <- 1:4 だと行も列も設定されないからで、
特に深い意味は無い。
756 名前:
名前空間を汚染したくない場合、関数を作るのが普通なのでしょうか?
757 名前:
= 0.0288357995999999) :
新しい列は既存の列に穴を開けるかも知れません
というエラーが出るのですが、既存の行列の列を増やすためには
何か作法が必要なのでしょうか?
758 名前:
すみません天啓が降りてきたので質問を取り下げます。
759 名前:
0,1
0,2
:
0,10
1,0
1,1
1,2
:
1,10
2,0
:
:
10,10
こういう総当たり用の行列を作れる関数を教えてください。
お願いします。
760 名前:
http://www.okada.jp.org/RWiki/?%A5%D9%A5%AF%A5%C8%A5%EBTips%C2%E7%C1%B4#content_1_17
761 名前:
ありがとうございます。読んでみます
762 名前:
X %*% X %*% X %*% X %*% ....
を簡単に求める事ができる関数ってありますか?
765 名前:
eval(parse(text=...)))とpaste()のcollapseオプションを使うと、例えば
下記のようにできるよ。
> n <- 5
> X <- matrix(1:4,ncol=2)
> eval(parse(text=paste(paste(rep("X %*%
",n-1),collapse=''),"X")))
[,1] [,2]
[1,] 1069 2337
[2,] 1558 3406
766 名前:
(X%*%X)%*%(X%*%X)みたいな分業方式でやるか。
769 名前:
レスサンクス。内積は*じゃだめなのね。
勉強してきます。
770 名前:
sum(x*x)でも結果は内積とるのと同じだけど。
771 名前:
2元配置の多重比較は分からんな。
繰り返しないならrep.aovでできるぞ。
ぐぐってみるべし。
772 名前:
一般的にはこうやってやるみたい。
http://omt.med.gunma-u.ac.jp/~tgaku/trivia/jEmalgo.htm
mclustってパッケージでできるみたいだけど、
式が行列を沢山含んでcurveで表示できないし、実際に代入してみても
元のデータと全然数値が合わない。
773 名前:
Rで、2.5及び97.5%点を求める場合、どのようにすればよいでしょうか。
(関数や無限大の表示入力方法等)
774 名前:
そのnって自由度か?そうなら笑い話ということか。
777 名前:
微分できない関数などもあるのでしょうか?
全面的に結果を信頼して大丈夫ですか?
778 名前:
初等関数に対する微分の公式を与えておけばどんな関数も分解して微分するだけなので
問題ないのでは?積分はそんなに簡単にはいかないけど。
779 名前:
qchisqでいいんじゃね?
780 名前:
結局実現できたのでしょうか?
781 名前:
VCでGUI作ってそこで色々処理させてる途中でRの関数を呼びたいんですけど。
782 名前:
あのね、上のテンプレとか確認しましょうよ。
http://www.okada.jp.org/RWiki/?R%A4%AB%A4%E9%C2%BE%B8%C0%B8%EC%CD%F8%CD%D1
783 名前:
おお、できるんですか。
ちょっと使ってみます。
とりあえずできる、できないって一言レスを期待してテンプレも見ずに書き込んじゃいました。。。
丁寧にどうも。
784 名前:
そのページはRからの他言語利用で>>782が
ほしいのはその逆のようですが…。
Rをコマンドとして呼び出すことはできるのでそうするんでしょうな。
785 名前:
R の遅延評価は、どのように活用すれば良いのでしょうか?
Haskellをちょっとだけかじったので、ああいう感じに使ってみようとしたので
すが、組み込みの遅延リストなどは無いようで(巨大なベクターを作成すると、
メモリ上に全部領域確保され、初期化されてしまう)、どうも勝手がわかりま
せん。
x = 0
for (i in 1:1000000) x <- x + i
print(x)
こういう計算でも、必要になった時点でデータが作られるわけではないようで、
1:1000000 が全部領域確保されてしまいます。
どういう使い方が想定されているのか、お教えいただけないでしょうか?
786 名前:
「R が遅延評価であることの、うまい使い方を教えていただけませんか?」
よろしくお願いいたします。
787 名前:
なんでだろ
788 名前:
依存コードが多くなってきてるいい兆候じゃないかな
789 名前:
guiから一括ではダウンロードまでしかしてくれないし
790 名前:
VC++上からRの関数って実行できますか?
色々と試してみたのですが、コンパイルは通るものの、
肝心のRの関数のコール時にアプリがダウンしてしまいます。
アドバイスをお願い致します
791 名前:
792 名前:
2008/04/14(月) 16:51:15
RcppTemplateでググった?
まだ試してないんでできるかは分かりませんが・・・
793 名前:
頭から呼び出す必要あると思う。
794 名前:
多言語=>他言語
795 名前:
2008/04/14(月) 22:33:24
レスありがとう
RcppTemplate は試しました。
pexport,libコマンド使用して Rdllからlibファイル作ったりもした。
一応コンパイルは通るんですけどね、
VC++上でデバッグかけると「AccessViolation」発生しちゃうんですよ。
恐らく、793さんの言うとおり、ライブラリだけの利用はできないような機がします。
RcppTemplateは 「R上で、C++を含んだR関数を作成するためのモノ」だと思いました(多分)
う~ん、残念。
796 名前:
2008/04/14(月) 22:44:48
本当ですか?
RjpWikiの他言語インターフェース一覧は一応確認してますが、
Cから呼び出せるインターフェースは無かったです。
Rの中にある、 Call_R っていうやつですかね。
あれも「R上でCを含んだR関数を作成するもの」のような機が。
...詳細教えてください m(__)m
797 名前:
cat("abc¥ndef")
とやってもコマンド版なら改行されるけどGUI版だと改行されずそのまま¥nが表示されてしまいます。どうしてかわかりませんか?
798 名前:
Mathematicaで多変量とか扱うと、とんでもない値を返してくるか、止まるので。
それでも R よりましなら、式をテイラー展開の繰り返しで本当に適当な近似値出すんですが。
799 名前:
\とoption+\の違いは分かる?Macユーザなら誰でも一度ははまる。
800 名前:
CやC++用のが
801 名前:
正直Cのインターフェースが用意されてない理由が分からない
>>800
http://www.okada.jp.org/RWiki/?R%A4%C8%A5%A4%A5%F3%A5%BF%
A1%BC%A5%D5%A5%A7%A1%BC%A5%B9%A4%CE%A4%A2%A4%EB%A5%A2%A5%D7%A5%EA
ここ見た?
CからJAVAを呼び出すのはJNIでいけるし間接的にCからRを呼び出せるんじゃないか?
実行速度は期待できないけど
802 名前:
803 名前:
ありがとう!Mac初心者だから知らなかった。
バックスラッシュと円記号は別なんですね。
811 名前:
何がいけないんでしょうか??
> require(datasets)
> data(iris)
以下にエラー file.info(x) : ファイル名変換に問題があります
> data()
以下にエラー file.info(x) : ファイル名変換に問題があります
> data(iris, package="datasets")
> head(iris)
Sepal.Length Sepal.Width Petal.Length Petal.Width Species
1 5.1 3.5 1.4 0.2 setosa
2 4.9 3.0 1.4 0.2 setosa
3 4.7 3.2 1.3 0.2 setosa
4 4.6 3.1 1.5 0.2 setosa
5 5.0 3.6 1.4 0.2 setosa
6 5.4 3.9 1.7 0.4 setosa
812 名前:
ひょっとしてファイル名に問題があったりする?
知らんけど。
815 名前:
Linux版だとそのエラーはでないね。Rを想定外の場所にインストールしているとか
816 名前:
2.7.0を再インストールした段階では問題ありませんでした。
そのあと、Rcmdrを追加したあとで、おかしくなりました。
それから、どうにもなりません。
どなたかご解決をお願いします。
817 名前:
818 名前:
以下のもエラーがでるようになっていました・・・何か参考になれば・・
> demo()
Warning message:
In file.show(outFile, delete.file = TRUE, title = paste("R",
tolower(x$title))) :
819 名前:
plot(hoge.ts, plot.type = "single")
をしているのですが、更に棒グラフ+ラインプロットのように系列によって
プロット方法や色などを変えたいと考えています。
で、?plot,?plot.ts,?plot.default,?parなどを読んだのですが、
系列ごとに変えることがさっぱりできません。これはもしかして
plot一発ではできなくて、低レベル描画関数を組んで自分でデータ系列ごとに
1つづつプロットしないと駄目なんでしょうか?
単に無知・調査不足でできないのか、それとも本当に↑の通りなのか
見極めが付かないままなので、先達の方に道程を指し示していただければと。
820 名前:
なんかイラっとくる
821 名前:
system()じゃ足りないの?
822 名前:
C#自体がどうのこうのという意見は置いといてな。
824 名前:
エディタで書いてRConsoleにコピペしているのですが
もっと簡単な方法はないですかね?
825 名前:
むしろ、そんな面倒なことをしている人の方が少なそう。emacs+essとかTinn-Rとか
Rjpwikiには書いていなかったっけ?
826 名前:
同じくR付属エディタで書いてコピペしてます。
個人的には割と満足。
ただエディタがカッコとかクウォートを補完するのを止めたいのだが…
まあもう少し調べるか。
827 名前:
epsファイルに出力すれば使えるのはわかりますが,WindowsメタファイルやPDFに直接出力したときに反映されるようにしたいんですが……。
828 名前:
Windowsメタファイルは知らんが、pdfはHelveticaになっていないの?
> pdf("tmp.pdf")
> plot(runif(10),runif(10))
> dev.off()
null device
1
> system("/opt/local/bin/pdffonts tmp.pdf")
Error: No paper information available - using defaults
name
type
emb sub uni
object ID
------------------------------------ ----------------- --- --- ---
---------
ZapfDingbats
Type 1
no no no
5 0
Helvetica
Type 1
no no no
10 0
Helveticaになっているよ。
829 名前:
小塚明朝になってます…
epsをつくるときにフォントファミリーを指定する方法以外調べてもわからなかったんですが,どう設定すればいいのでしょうか?
830 名前:
初期設定のどこかで小塚明朝にしているでしょ。
>>829はデフォルトの状態で何にも触っ
ておらんよ。
> pdf.options()$family
[1] "Helvetica"
上記のようになっていなかったら、
pdf.options()$family <- "Helvetica"
でいいじゃね。
831 名前:
自由度19,19のデータ列a,bに対してF検定を行なったところ、
以下の結果を得ました。
var.test(c,b,conf.level=0.95)
data: c and b
F = 1.3572, num df = 19, denom df = 19, p-value = 0.512
alternative hypothesis: true ratio of variances is not equal to 1
95 percent confidence interval:
0.5371931 3.4288788
sample estimates:
ratio of variances
1.357192
95%信頼区間は(0.5371931, 3.4288788)とのことです。
しかし実際にF分布から信頼区間を求めると
> qf(0.025,19,19)
[1] 0.3958122
> qf(0.975,19,19)
[1] 2.526451
と、上のF検定結果とは異なる結果になります。
(それ以前に、上の検定結果は(下限)=1/(上限)の関係すら満たしていません)
var.test()の信頼区間とは何を現しているのでしょうか?
832 名前:
2008/06/09(月) 01:49:47
834 名前:
1/qf(0.025,19,19)=2.526451
=qf(0.975,19,19)
835 名前:
信頼区間なんだから非心F分布から求めてるんだろ。
836 名前:
そちらは当然逆数の関係にあります。
「上の検定結果が逆数関係を満たしていない」とは、F検定結果の信頼区間のほうをさしています。
>>834
非心F分布ですか…。
勉強不足でしりませんでした…。
837 名前:
質問した者です
838 名前:
個別要素ではなくて一括して取り出したいです。
(1,2,3,4,5,6,7)
↓
(3,4,5,6)
1 2 3 4
5 6 7 8
9 10 11 12
↓
6 7
10 11
みたいなかんじです。
839 名前:
[1] 1 2 3 4 5 6 7
> a[3:6]
[1] 3 4 5 6
> (b <- matrix(1:12,ncol=4,byrow=TRUE))
[,1] [,2] [,3] [,4]
[1,] 1 2
3 4
[2,] 5 6
7 8
[3,] 9 10 11 12
> b[2:3,2:3]
[,1] [,2]
[1,] 6 7
[2,] 10 11
やりたいことがいまいち分からないが、こういうこと?
840 名前:
qf(c(0.025, 0.975), 19, 19) * 1.357192
[1] 0.5371931 3.4288790
841 名前:
qf(0.025,19,19) の 0.3958122 と
qf(0.975,19,19) の 2.526451 は
2群の標本分散の比(つまりF値)の棄却域。
95 percent confidence interval:
0.5371931 3.4288788
ってのは、2群の標本分散の比であるところの1.3572(F値そのもの)
から推定すると、2群の母集団の分散の比はこの辺にあるだろうなー、
という幅。つまりは信頼区間。
母分散の比の推定を幅ではなくて一点でしぼるのなら、最も合理的な値は
F値であるところの1.3572。
842 名前:
なるほど、分かってきた気がします!
母集団のF値が1で仮定したときの帰無仮説における95%信頼区間が0.3958122~2.526451であり、
これから標本値のF値が外れていると棄却する。
一方、「95 percent confidence interval」は、逆に標本値がF=1.3572であったときの母集団の推測値の95
percent confidence intervalということですか。
これから帰無仮説における母集団のF値=1が外れていると棄却する。
納得いきました。結局は同じことだったんですね。
ありがとうございました。
843 名前:
九天社は2008年06月10日に営業を停止しました。
************
このページは、元サイト管理者の判断により一時的にサーバーを移転して公開しています。書籍のデータのダウンロード等、必要な方はなるべくお早めにダウン
ロードしてください。
--------------------------------------------------------------------------------
Rプログラミング&グラフィックス
[著]高階知巳 [価格]3,990 円(税込)
--------------------------------------------------------------------------------
Rで学ぶデータマイニングII シミュレーションの視点から
[著]熊谷悦生、舟尾暢男 [価格]3,990 円(税込)
--------------------------------------------------------------------------------
R Commander ハンドブック
[著]舟尾暢男 [価格]3,360 円(税込)
--------------------------------------------------------------------------------
Rで学ぶデータマイニング I データ解析の視点から
[著]熊谷悦生、舟尾暢男 [価格]3,780 円(税込)
--------------------------------------------------------------------------------
The R Tips データ解析環境 R の基本技・グラフィックス活用集
[著]舟尾 暢男 [価格]3,675 円(税込)
--------------------------------------------------------------------------------
The R Book データ解析環境「R」の活用事例集
[著]岡田 昌史 [価格]3,990 円(税込)
--------------------------------------------------------------------------------
844 名前:
できました!ありがとうございました!
845 名前:
ぬわっんと、倒産ですか。
すみませんが、その移転先を教えて頂けませんか、お願いします。
846 名前:
倒産だし
847 名前:
これかな
http://www.9-ten.com/list/key_rtoukei.php
848 名前:
いや、サイトの移転先の話ですw ページトップからは入れなくなっているんで。
>847
ありがとうございます。
849 名前:
分解したwaveletを再構成するにはどうしたらいいか教えてください
関数が今一分からないです
850 名前:
ところが、Amazonはじめいつも使っているネット書店では在庫なし!
しばらく探し歩いて、今日、無事に届いた。急な出費は痛いけど、
悔やむより良いかなと。
855 名前:
856 名前:
> compare <- height >= 160 & height
< 170
> table(compare) #これとか
compare
FALSE TRUE
21 10
> length(which(compare)) #これとか
[1] 10
857 名前:
行列データなのですがまずデータフレームにするべきなんですね。
名前:
データフレームの方が扱いやすいが
それくらいの集計なら行列でもたやすいぞ。
861 名前:
り方は正統派なんだけど、めんどうなので、
> height <- 150:180
> sum(height >= 160 & height < 170 )
[1] 10
これでいいんじゃね。
862 名前:
ちゃんと分析するならこんな感じ。
# 分析対象データを乱数で発生させる。
height<-runif(100,min=150,max=180)
# 集計する区切り位置を決める。
breaks<-c(150,160,170,180)
# 区切り位置で区切った結果が因子になって出てくる。
fac<-cut(height,breaks=breaks,right=F)
# 因子の数を集計すると度数分布が出てくる。
table(fac)
# ついでにヒストグラムも描いてみる。
hist(height,breaks=breaks,right=T)
863 名前:
864 名前:
1列に限定した度数分布を求めることはできたのですが
heightが160以上170でweightが50から60は何人いるか、という2つ以上の条件を含めた度数分布をもとめるにはどうすればよいでしょう
か
865 名前:
うーむ……クレクレくんかよ。ちょっとは考えようや。
compareH <- height >= 160 & height < 170
これで、160~170が TRUE/FALSE で取れてくるんでしょ。なら、
compareW <- weight >= 50 & weight < 60
で 50~60が TRUE/FALSE で取れるじゃん。
両方が TRUE の場合のみカウントすれば良いんだから、
length( which(compareH & compareW) )
866 名前:
160<=height<170 and 50<=weight<60
とか書けないのかな・・・・
まあいいけど
867 名前:
sum(height - 160)%%10 < 10 & (weight - 50)%%10 <
10)
礼ぐらいまともに出来るようになれよ。
868 名前:
dataset<-data.frame(height=runif(100,min=150,max=180),weight=runif(100,min=30,max=100))
# 集計する区切り位置を決める。
breaks.height<-c(150,160,170,180)
breaks.weight<-c(30,40,50,60,70,80,90,100)
# 区切り位置で区切った結果が因子になって出てくる。
fac.height<-cut(dataset$height,breaks=breaks.height,right=F)
fac.weight<-cut(dataset$weight,breaks=breaks.weight,right=F)
# クロス表を出す。
table(fac.height,fac.weight)
少し汎用性を持たせるとこんな感じだろうか。僕も勉強し始めだから。
なんでこれをRで集計する必要があるのか、興味あるところ。
869 名前:
rcompgenちうものを最近知ったわけで。コマンド補完は
ESSでしか無理だと思っていて、emacs挫折者の僕としては
rcompgenの補完機能だけで泣けた。あまり紹介されていない
機能の様だけれど、R使いの人達には言うまでも
ないことなのだろうか、それとも大穴なのだろうか。
870 名前:
少しは自分できちんと調べられるようになります。
871 名前:
あ~勘違いですよ
質問者ではないので、質問者を責めないであげて。
単に冗長だなと思っただけ。
872 名前:
沢山の人間が書き込んでいるとは
想像できていなかったんだ、
許してやってくれ。
873 名前:
勘違いしたんだろ
874 名前:
875 名前:
876 名前:
2008/06/28(土) 18:22:41
877 名前:
878 名前:
2008/06/28(土) 20:08:47
それが分かれば再変換可能
879 名前:
2008/06/28(土) 20:09:12
880 名前:
罪滅ぼしに、160 <= hoge < 170が出来ない理由を書いておく。
算術演算子なら、演算子の優先度に基づいて左から解釈されていく。
このとき一つ一つの演算結果は数値だ。一方比較演算子はbooleanが結果になる。
例で言うと (160 <= hoge) < 170 で括弧の中身を比較したあとに < 170
の演算を
やるわけだが、括弧内の結果(T/F) と数値の比較はできない。T を1と強制変換
したとしても、それは hoge < 170 の比較ではなくなるので意味が無い。
このため、コードが人間からすると冗長になるのは仕方が無い。
881 名前:
> 160 <= hoge < 170が出来ない理由
> hoge <- function(x){
+ a <- unlist(strsplit(x,' '))
+ res <- eval(parse(text=paste(a[1],a[2],a[3]))) &
+ eval(parse(text=paste(a[3],a[4],a[5])))
+ return(sum(res))
+ }
> height <- 150:180
> hoge('160 <= height < 170')
[1] 10
883 名前:
それを>866はコードが冗長だといっているのでは?と思ったのだが。
出来ない訳ではないのは分かっているし、もっと単純にやる事も出来るでしょ。
sum(hoge * (hoge >= 160) < 170)
で出来る。これにしても、人間にとっては冗長だと思うけど。
884 名前:
欠かれたコードが冗長と言っているのでなく、
そもそも冗長になってしまう言語面の問題を
言いました。
用意すれば良いのは分かっているのですが。
かといって、テクニックで短くなるの自分だけが
見る時以外は良くないし。
少々冗長でも分り易ければいいんですが。
基本的には、言語として人に優しくないなと思ったまでです。
882 名前:
885 名前:
お!主語が抜けてた。再度
またS-PLUSの開発会社が身売りされた
892 名前:
foo<-seq(from=100000,to=1000000,by=10000)
plot(foo,foo)
とすると、標準デバイスに散布図が描かれるけど、
x,y軸の数値表記が
2e+05 4e+05 ... 1e+06
と指数表記されてしまう。これを
200000 400000 ... 1000000
と表記させることはできないだろうか。
低水準作図関数で作るまでの必要はないし、
ものすごく簡単なことで実現できそうで、
wikiには恥ずかしくて書けないから、
こっちで誰か教えてくれまいか。
環境は Windows XP SP2 R 2.7.0 です。
893 名前:
っていうかwikiのどこかにそれ書いてあると思うけど。
894 名前:
書いてあるのか!そうか、方法はあるんだな。良かった。
でもな、調べるにしても既に検索ワードのネタ切れでな....。
895 名前:
options(scipen=2)
http://cse.naro.affrc.go.jp/takezawa/r-tips/r/11.html
896 名前:
897 名前:
898 名前:
できたよありがとうウァァァァァァン!!!!!
899 名前:
R初心者なんですが、Rcmdr使ってるんですけど
このパッケージで探索的因子分析ってできますか?
因子数を最初に決めるのが困難なですが・・・。
900 名前:
Error: cannot allocate vector of size 342.5 Mb
R(2168,0xa01a6fa0) malloc: *** mmap(size=359137280) failed (error
code=12)
*** error: can't allocate region
の様なエラーが出てしまうのですが、
これはメモリ割当が足りないという事でしょうか?
MacBookPro/MacOSX10.5.4/2G memory/R2.7.1/Rapp1.25
です。
どのようにしたら回避できるでしょうか?
901 名前:
redhatにRをインスコして
「R --vanilla << EOF」
を用いてシェルスクリプト上からバッチ処理したいなと思ったんですが
「以下にエラー check.options(new, name.opt = ".X11.Options", envir = .X11env)
:
c("invalid argument name 'restoreConsole' in 'png(str, width = 1920,
height = 980, pointsize = 12, bg = \"white\", '", "invalid argument
name 'restoreConsole' in ' res = NA, restoreConsole = TRUE)'")
Calls: png -> check.options
実行が停止されました」
と出てしまい実行できませんでした。
試しに
「 x <- 1:10
y <- 1:10
plot(x, y)
q() 」
をEOFで挟んで実行すると問題なく画像ファイルが出力されました(PDF形式でしたが。。)
エラー内容を読み解くことすらできません・・どなたかわかるかたいらっしゃいませんか?
902 名前:
普通はグラフィックディバイスを開いてからplot()を使うので、グラフィックディバイス
を開かずにいきなりplot()すれば、エラーが出て当然だけど、それでもpdfを吐いてくれる
んだ。親切な仕様だな。
?png
?postscript
あたりを読む。
903 名前:
読み解く根性がないと言われたらそれまでだけど・・・
R-tipsの前におすすめの入門書とかないですかね。。。
904 名前:
筆者がR-tipsがわかりにくいという評判なので、もっとわかりやすいのを書いたと
言っているデータ解析環境「R」―定番フリーソフトの基本操作からグラフィックス、統計解析まで-
http://www.amazon.co.jp/dp/4777511847
を薦めている。「Rによるデータサイエンス」もお薦め。
905 名前:
親切にどうもです
今日本屋で見てきます。
906 名前:
prcompで主成分分析したときに出てくる値というのは、
分散共分散行列による主成分分析の値ですよね?
この青木先生のページ(http://aoki2.si.gunma-u.ac.jp/R/pca.html)
にあるpcaと言う関数の主成分負荷量とはいったい何の値なんでしょうか?
prcompで主成分分析したときの値とだいぶ異なりました。
相関行列による主成分分析の値かと考えたんですが計算したら違うようなので・・・
また、普通主成分分析をするとしたらどちらの値を指すのでしょうか?
908 名前:
固有ベクトルは長さが1で負荷量は長さが固有値という違いですね。
分散共分散行列に基づく主成分分析は変数の測定単位が同じである必要が
あるけど相関行列に基づく方はこだわらなくてよいので青木先生は初期設定を
そちらにしてるのかな。
909 名前:
なるほど。
prcompの方は分散分析行列によるもので長さが1の固有ベクトル、
青木先生のpcaは相関行列によるもので長さが固有値の負荷量ということですね。
でも今使ってるデータをprcompとpcaで解析すると、
第一主成分の係数の符号は同じなんですが、
第二主成分以降の係数の符号が違くなります。。。
(符号が反転してるわけではないので、たぶん主成分の順番が入れ替わってます。)
分散分析行列に基づいた解析と相関行列に基づいた解析では
主成分の順番が入れ替わることはありえるのでしょうか?
それともやり方が何か間違っているのでしょうか・・・?
説明が下手ですいません
910 名前:
分散共分散行列に基づく主成分と相関行列に基づく主成分は
大きく異なることも多いです。特に分散共分散行列に基づく主成分で
第1主成分が総合効果の場合、相関行列ではそれが消えてしまいます。
つまり順番だけとは限りません。
911 名前:
に関して教えていただきたいのですが、サンプルプログラムを走らせても
> boxplot2()
windows
2
と表示されるだけで、図が作成されません
何か問題があるのでしょうか?
どなたか、どうぞよろしくお願いします
912 名前:
なるほど、全然別のものになってしまうんですね。
疑問が解決しました、ほんと丁寧にありがとうございました。
914 名前:
Excel 用の統計本を買ったら、統計関連関数が山ほどあって、
Ruby から Excel 関数を利用することを試みつつ、
相関、推定、検定と書いてきて、重回帰分析で Excel 関数を使うか、
Ruby の Matrix を使うか、しばし熟考・・・・・
これはムダだと、ようやく気づいた。
「なんか、あるだろ、統計ソフトが」
んで、ググって、ここに来たよ。
マジですごいなコレ(R)。
文法が変だと思ったけど、慣れだな。
自力でやっていたことはムダではなかった。
R の変数名、関数名、引数を見るだけで、もうやりたいことがわかるし。
Web 上に情報がてんこ盛りだし。ありがてー ・゚・(ノД`)・゚・
915 名前:
文法は、Cの皮をかぶったLISPだから。RUBY屋ならすぐになれると思うよ。
916 名前:
共分散構造分析がやりたいんだけど他の参考書と比べても充実してるし
豊田秀樹先生もRによるSEMマニュアル出してくんないかな
917 名前:
>文法は、Cの皮をかぶったLISPだから。RUBY屋ならすぐになれると思うよ。
ハハ。その通りみたいだ。
Rgui を起動してみて、Stk(Scheme) みたいだと思ったよ。「なつかしー」
What is STk?
http://kaolin.unice.fr/STk/STk.html
STk is a free R4RS Scheme interpreter which can access the Tk graphical
package. Concretely, it can be seen as the standard Tk package where
Tcl has
been replaced by a Scheme interpreter. STk embeds also an efficient
CLOS
like object oriented system, called STklos, which provides:
The mandatory screenshots page
http://kaolin.unice.fr/STk/screenshots.html
The STk Code Editor
This is a specialized editor for Scheme programming.
It do some font highlighting and parenthesis matching.
918 名前:
いいですよね、その本。
私も買ってしまいました。
大学の教授の研究室にもありましたよ!
919 名前:
920 名前:
例えば次のようなデータ(X,Y,Z)があります。
X Y Z
20 10 120
30 56 201
5 40 150
12 25 96
19 27 115
Zの値がが100未満ならA、Zの値が100以上150未満ならB、Zの値が150以上ならCと変換して、
下記のようにしたいのですが、どなたか教えていただけないでしょうか?
X Y Z
20 10 B
30 56 C
5 40 C
12 25 A
19 27 B
どうぞよろしくお願いいたします。
921 名前:
> zc <- ifelse(z<100,"A",ifelse(z>=100
& z<150,"B",ifelse(z>=150,"C",NA)))
> zc
[1] "B" "C" "C" "A" "B"
エクセルと同じかな?
922 名前:
> z[z>=150] <- "C"
> z[z>=100 & z<150] <- "B"
> z[z<100] <- "A"
> z
[1] "B" "C" "C" "96" "B"
?????どうしてうまくいかない???
逆では?? うまくいかない??
> z <- c(120,201,150,96,115)
> z[z<100] <- "A"
> z
[1] "120" "201" "150" "A" "115"
> z[z>=100 & z<150] <- "B"
> z
[1] "B" "201" "150" "A" "B"
> z[z>=150] <- "C"
> z
[1] "C" "C" "C" "C" "C"
なぜなのか教えて
923 名前:
これみると
"A","B","C"という値は、"150"より
大きいということでしょう。
HEX出力してみるとそうなってんじゃないかな。
924 名前:
> z <- c(120,201,150,96,115)
> z2<-z
> z2[z>=150]<-"C"
> z2[z>=100&z<150]<-"B"
> z2[z<100]<-"A"
> z2
[1] "B" "C" "C" "A" "B"
自分自身に入れると途中から数ではなく文字列になるので
>>922のいうように文字列比較になって
しまいうまくいかない。
925 名前:
条件文を
> zc <-
ifelse(data$Z<100,"A",ifelse(datat$Z>=100 &
data$Z<150,"B",ifelse(datat$Z>=150,"C",NA)))
を使って、Zに記号をつけた新しいdataNEW=(X,Y,Z)ができますか?
すみませんまた教えていただけませんか?よろしくお願いします。
926 名前:
recodeするときは、ifelseよりもcutを使った方が楽だと思うぞ。
> z <- c(120,201,150,96,115)
> z <- cut(z,c(-Inf,100,150,Inf),include.lowest=TRUE)
> levels(z) <- LETTERS[1:3]
> z
[1] B C B A B
Levels: A B C
927 名前:
928 名前:
信頼係数95%のときに、自由度10の両側有意水準は、以下のようにして得られる。
> qt(0.975,10)
[1] 2.228139
> qt(0.025,10)
[1] -2.228139
929 名前:
二つの変数があるときの二次計画をときたいのですが。。
ipopでは無理なのでしょうか?
930 名前:
ありがとうございます。
ifelseよりシンプルに書けそうですね。
申し訳ありませんが下の2行の翻訳をお願いいます。
> z <- cut(z,c(-Inf,100,150,Inf),include.lowest=TRUE)
> levels(z) <- LETTERS[1:3]
A、B、Cの指示はどの部分ですか?
よろしくお願いします。
931 名前:
LETTERS[1:3]
932 名前:
代返ありがと
>>931
ベクトルではなくてデータフレームを扱いたいと言うこと?cbind()で足せばOK
> dat <-
data.frame(x=month.name[1:5],y=runif(5),z=c(120,201,150,96,115))
> dat
x
y z
1 January 0.63212456 120
2 February 0.19865357 201
3 March 0.31978766 150
4 April 0.88575752 96
5 May 0.01307491 115
> z.s <-
cut(dat$z,c(-Inf,100,150,Inf),include.lowest=TRUE)
> levels(z.s) <- LETTERS[1:3]
> dat <- cbind(dat,z.s)
> dat
x
y z z.s
1 January 0.63212456 120 B
2 February 0.19865357 201 C
3 March 0.31978766 150 B
4 April 0.88575752 96 A
5 May 0.01307491 115 B
933 名前:
data=(X,Y,Z)の中でZについてある範囲でいくつかに分類したかった
ので質問させていただきました。
これまではsubset()を何度も繰り返していました。
cbind()はとても便利そうですね。助かりました。
934 名前:
皆様にもう一つ質問させてください。
次のようなデータがあります。
X Y Z
20 10 120
30 56 201
5 40 150
12 25 96
19 27 115
2 30 165
10 23 85
X,Yの散布図を描きたいのですが、条件としてZ<100のときは赤丸(凡例)、100<=Z<150のとき青丸、
Z>=150のとき緑丸とするにはどのようにしますか?
どうぞよろしくお願いいたします。
935 名前:
もはやあなたを相手しているのは私だけのような気がするが、
> dat <-
data.frame(x=c(20,30,5,12,19,2,10),y=c(10,56,40,25,27,30,23),z=c(120,201,150,96,115,165,85))
> cols <- c("red","blue","green")
> z <- cut(dat$z,c(-Inf,100,150,Inf),include.lowest=TRUE)
> plot(dat$x,dat$y,col=cols[z],pch=19)
legendは自分で考えてみなさい
936 名前:
> 123.05 - 123.02
[1] 0.03
> (123.05 - 123.02) == 0.03
[1] FALSE
で、FALSEが返ってくるのは、なぜ?
色々本を見たんだけど、どこにも理由が出ていないし・・・
俺のOSX版だけかな。
937 名前:
> 123.05-123.02
[1] 0.03
> sprintf("%.15e", 123.05-123.02)
[1] "3.000000000000114e-02"
>
どうしてもそこで TRUE が欲しい場合には、
> (1.0 - 123.02/123.05) - 0.03/123.05 < 1.0e-15
などとする。
938 名前:
>abs(1.0 - 123.02/123.05 - 0.03/123.05)< 1.0e-15
939 名前:
いいところに気がついたね。数値計算の世界にようこそ。
> (123 - 122) == 1
[1] TRUE
> (123 - 122.5) == 0.5
[1] TRUE
> (123 - 122.75) == 0.25
[1] TRUE
> (123.05 - 123.02) == 0.03
[1] FALSE
> (123.06 - 123.02) == 0.04
[1] FALSE
整数は正確に保持され、小数部分を持つ数も,小数部が2進数で表されるもの(0.5, 0.25, 0.125 など
などや,それらの和で表現されるもの)は,正確に保持される。一方、それ以外の数は,"近似値"が保
持され、上記ような結果になる。Execelの計算がいい加減なのは上記問題を無視しているから。Rユー
ザは、きちんと考慮してプログラムを作るべき
940 名前:
>>937
>>937
ご親切なご指導ありがとう後います。
何となく浮動小数点関連ではないかなと考えていたのですが
思ってたより、誤差が入ってしまうので正確に計算するのは難しそうですね。
とりあえず、最大小数点二位までのデータなので
全てのデータを百倍して、整数域で扱うことにしました。
ありがとうございました。
941 名前:
データフレームでV2は世帯番号、V3は個人番号だとして
$ V2 : int 1 1 1 1 1 1 1 1 3 14 ...
$ V3 : int 1 1 2 2 3 3 4 5 1 1 ...
unique()で重複する要素をのぞいて以下のように各個人の合計を数えたいのですが
1-1,1-2,1-3,1-4,1-5,3-1,14-1,....
どのようにuniqueを使えばよいでしょうか?
また他にやり方があれば教えていただけないでしょうか。。
942 名前:
その答えと同じにするなら
VV<-paste(V2,"-",V3)
unique(VV)
とするとよいが。
943 名前:
2.7.2だな。
944 名前:
945 名前:
パッケージってどこかにないでしょうか。
パッケージ名等ご存じの方がいましたら教えてください。
946 名前:
------------------------------------
Anova Table (Type II tests)
Response: y
Sum Sq Df F
value Pr(>F)
x 91.779 1
88.525 8.19e-05 ***
Residuals 6.221 6
------------------------------------
のようなものをクリップボード経由で
EXCELに貼り付けて表形式にする方法があれば教えてください。m(_ _)m
("Sum Sq","Df","6.221"等をここのセルに整列する方法)
947 名前:
write.csv()
948 名前:
忙しいなか、初心者の質問にお答え頂きありがとうございます。
------------------------------------
> write.csv(Anova(RegModel.1))
"","Sum Sq","Df","F value","Pr(>F)"
"x",91.7794117647059,1,88.5248226950355,8.1900177580363e-05
"Residuals",6.22058823529412,6,NA,NA
------------------------------------
見事にカンマ区切りになり、感動しているのですが、ここから
どうやってクリップボード経由でEXCELに持ち込んだら良いのでしょうか。
ファイルに一旦書き込まないと無理でしょうか。
書き込むのであれば、画面出力を.txtにしてテキストファイルウィザード
から読んだ方が忠実に再現されるように思います。生意気言ってすみません。
949 名前:
------------------------------------
Anova Table (Type II tests)
Response: y
Sum Sq Df F
value Pr(>F)
x 91.779 1
88.525 8.19e-05 ***
Residuals 6.221 6
------------------------------------
に対して
------------------------------------
<TABLE>
<TR><TD>Anova</TD><TD>Table</TD><TD>(Type</TD><TD>II</TD><TD>tests)</TD></TR>
<TR><TD>Response:</TD><TD>y</TD></TR>
<TR><TD>Sum</TD><TD>Sq</TD><TD>Df</TD><TD>F</TD><TD>value</TD><TD>Pr(>F)</TD></TR>
<TR><TD>x</TD><TD>91.779</TD><TD>1</TD><TD>88.525</TD><TD>8.19e-05</TD><TD>***</TD></TR>
<TR><TD>Residuals</TD><TD>6.221</TD><TD>6</TD></TR>
</TABLE>
------------------------------------
のように文頭に<TABLE>、文末</TABLE>を付加、行頭に<
TR><TD>、行末に</TD></TR>を付
加
連続するスペース" "を</TD><TD>に置換すればSum Sqの行がずれますが
EXCEL表として貼り付くと考えました。素人考えですが・・・。
そんな関数ない、もしくは簡単には作れないですかね。
950 名前:
EXCELに貼り付けてから「[区切り位置] コマンドを使用してデータを区切る方法」
http://support.microsoft.com/kb/214261/ja
板汚し礼しました。(しかもスレチ?)
>>947様
有用な情報、ありがとうございました。逝ってきます。
951 名前:
新版マダー?
952 名前:
発行元の九天社が倒産したからね。
ここを見ればほとんど補えるよ↓
http://cse.naro.affrc.go.jp/takezawa/r-tips/r.html
954 名前:
955 名前:
最初は誰もが初心者
956 名前:
単位を取るとなるとそれなりの知識がないと厳しいのではないかと思い・・・
回帰分析などといったことをやるそうです
957 名前:
958 名前:
って何であんな排他的雰囲気なんだろうか。
傍から見てるとすごい心証わるいんだが。
959 名前:
アレは改めないとダメだね
960 名前:
961 名前:
Rによるやさしい統計学って本がお勧め
統計学初心者でもR初心者でも取っ付きやすいと思う
962 名前:
963 名前:
繰り返し文を使って大量にグラフを出力したいのですが、for文で使う変数をファイル名に取り込むときはどうやればいいいですか?
シェルでいう
i=1
filename="${i}.png"
の${}です・
964 名前:
>filename="${i}.png"
んで、イイんじゃね
> for( i in 1:5 ){
+ filename <- sprintf("%d.png", i)
+ cat(filename, "\n")
+ }
1.png
2.png
3.png
4.png
5.png
965 名前:
(1) ○
第6章 2つの平均値を比較する
第7章 分散分析
複数の標本、対応のあるなし、3つ以上の平均値の比較
などが、連続的に扱われていて、非常にわかりやすい。
(2) ◎
第18章 人口データの発生
第19章 検定の多重性と第1種の誤りの確率
第20章 検定力分析によるサンプルサイズの決定
この説明の順番は、すばらしい。
(3) ×
第4章 母集団と標本
第5章 統計的仮説検定( の最初の数ページ )
序文(vi)の「対象となる読者」が、この部分を理解できるとは思えない。
初心者に、確率変数、確率分布の説明が不十分。
966 名前:
3.45%という文字列を0.0345という数字に変換する方法を教えてください。
不可能なのでしょうか?
967 名前:
>3.45%という文字列を0.0345という数字に変換する方法を教えてください。
こんな感じかな
> s="3.45%"
> n=as.double(substr(s, 1, nchar(s)-1))/100.0
> n
[1] 0.0345
969 名前:
おそらく、データを取り込むときに
xx.x% 書式を小数データに自動変換する
機能があるんじゃないだろうか。
どこのソフトにもあると思うので、Rにもあるのではないかな
だれか知らない?(R知らないもので)。
971 名前:
>Σ(-ロ-)スマートにはいかないみたいですね。
以下は、最近話題ノ全国テスト、都道府県別の「数学A」の正答率(中学生)
第2カラムが、該当箇所(3.45%) ね。
D:\Somewhere>type in.txt
都道府県,正答率
北海道,68.6%
青森県,73.9%
岩手県,68.6%
(1) オレならば、awk でやっちまう。 under Cygwin, Linux
gawk -F, 'NR>1{ sub(/%/,"",$2); $2=$2/100.0; } { print $0; }'
in.txt > in2.txt
(2) R でやるならば、あらかじめエディタで % だけを削除しておく。
その後、R の transform で、1/100 する。
> tmp1 <- read.csv("in2.txt")
> tmp2 <- transform(tmp1, 正答率2=as.numeric(正答率)/100)
> df <- tmp2[,c(1,3)]
> df
都道府県 正答率2
1 北海道 0.686
2 青森県 0.739
3 岩手県 0.686
974 名前:
function(x){x<-as.character(x);as.numeric(substr(x,1,nchar(x)-1))/100}
> rmpercent("3.45%")
[1] 0.0345
> tmp1 <- read.csv("in.txt")
> tmp1
都道府県 正答率
1 北海道 68.6%
2 青森県 73.9%
3 岩手県 68.6%
> tmp1[,2] <- rmpercent(tmp1[,2])
> tmp1
都道府県 正答率
1 北海道 0.686
2 青森県 0.739
3 岩手県 0.686
975 名前:
最初からこういうの用意されていないんだろうか?ありそうな気もするが
> rmpercent <-
function(x){x<-as.character(x);as.numeric(substr(x,1,nchar(x)-1))/100}
%なら100で割ること決まって居るし、この行はなくても良いくらいだよね。
利用言語というよりアルゴリズム作り用なんだろうな、でも余分が多い。
でも、そうだから仕方ないんだけど
回答頂いた方への不満ではありませんので。もうしわけありませんでした。
ありがとうございます。
976 名前:
東大出版会の統計学入門を種本にした授業で単位を取った。
なぜか統計学入門は楽しく読めて、独学して一応
わかった「つもりになった」が、就職後、統計学と疎遠になったら
ほとんど全部忘れてしまった。
で、このたび仕事で必要になったんだが、予算上SASやSPSSには手が出せず、
Rの存在を知って早速インストールし、
関係サイトをあちこち見て回って勉強し直しているのだが、
もしかして、1991年刊の統計学入門で取り上げられている手法は、
WindowsXPがサクサク動くパソコンでRが使える時代には
もう古くさいものが少なからず含まれているのではないか?
977 名前:
手で電卓たたいて計算する必要はないんじゃないか?という意味なら
その通りだが、それは1991年でも同じ。教科書は学習用。
統計学を学習するということにおいて統計学入門はまだいい本だと思うよ。
978 名前:
自分にとって使いやすい統計ソフトであるかどうかという以前に、オープンソースとは何かという視点を
持った方がよいと思うぞ。必要性を感じた人が必要な機能を付加する(付加できる)ということは、逆に
言えば、あなたが欲しい機能が実装されていないのは、誰も必要と考えていないから。あなたが必要なら
あなたがrmpercent()のように追加すればよい。
私自身は%を少数に変換する必要性を感じたことがない。表計算ソフトで%表示されいても実態は小数デー
タだし、CSV経由で読み込んだらnumericになっている。
979 名前:
>私自身は%を少数に変換する必要性を感じたことがない。表計算ソフトで%表示されいても実態は小数デー
>タだし、CSV経由で読み込んだらnumericになっている。
質問は、一般的に統計ソフトなどはそういう機能を持ち合わせているので
Rにそういう機能はないの?という質問でしょう。
980 名前:
Rをメインで使っている人はデータ加工をどのようにしているの?
981 名前:
それはRにデータを読み込んでからのデータ加工場面と、
外部ファイルにあるデータをRに読み込むための場面に分けて
考えた方がいいと思う。
同様に、テキストデータと数値データについても、同じように
場面を分けないと、データ加工についての議論はすれ違いになる
のではないかと思う。
982 名前:
あとさ、やっぱり結果の信頼性に欠けるのかなぁ・・・
R歴そんなに長くないのですが、例えばdecomposeの乗法モデル。
Helpでは、Y[t] = T[t] * S[t] + e[t] になってるのに、
実装上は、Y[t] = T[t] * S[t] * e[t] ですよ・・・
無い物は自分で造る、間違っているものは自分で直せの精神ですか?
う~ん・・・
984 名前:
986 名前:
背景にあるSとMatlabの関係で
統計解析主体ならR、シミュレーション系が主であればoctave。
但し、実業界で考えるなら、Matlabは製造系で仕事がらみでの利用は結構
多いが、Sはあまり多くなく(ただし、企業内の研究など個々人の利用はある)
求人は多くない(Rとoctaveに限定すれば、企業内でのoctave利用はほとんど
ない)。
参考に。
>>984
取り込んでからの(数値データの)処理は強いが、前処理として
外部ファイルのあつかいは非常に弱い。その辺のニーズ異なると思われる。
987 名前:
これはなんですか?
> local({pkg <- select.list(sort(.packages(all.available
= TRUE)))
+ if(nchar(pkg)) library(pkg, character.only=TRUE)})
要求されたパッケージ tcltk をロード中です
Tcl/Tkインターフェースのロード Error : Tcl/Tk support files were not installed
Error : .onLoad は 'tcltk' のための 'loadNamespace' で失敗しました
エラー: パッケージ 'tcltk' をロードできませんでした
>
988 名前:
tcltkがインストールされていない、またはパスが通っていないように見えるけど。
990 名前:
2008/10/13(月) 23:55:27
そうか。ありがとう。
自分にとって「真に新しい」概念は、学生時代に比べて
徐々に頭に入りにくくなってきているから、どんな分野であっても
なじみの教科書が使えるというのは助かる。
今回は、自然科学の統計学まで手をのばすつもり。
実務データが手元にあると、学生時代とは
統計学の理解の深さが違うと実感しているよ。
991 名前:
993 名前:
トンクス。やっぱり機械学習で統計がらみの作業が多いから
Rかのう・・・octave覚えるとMATLABに強くなれそうだから迷ってた。
994 名前:
狭義での機械学習だと、メモリー消費や実行モジュール形態から
どちらも向いているとは言えない。実務で使うレベルが一部可能
と考えた方が良いです。
ただし、広義でとらえて統計手法を含むことを考え、それを
中心に考えればRの方が、事例が豊富にあると思いますよ。
995 名前:
C++で書いてるんですがそれの実験のデータなどを調べたりグラフ書くときに
どっちにしようかなーと思ってたんです(院進学予定の学部生です)。
Rスレで聞いたし親切な回答いただけたしRで行くことにします。
ありがとうございますた。
996 名前:
外部ソフトとのインタフェイスの良さも考えておいた
ほうが良いと思いますよ。Octaveは分からないんですが
Matlabは組み込みが行いやすいので、ちょっと気になりました。
悩んじゃいますね。
Rの基礎とプログラミング技法
posted with amazlet at 08.10.20
U.リゲス
シュプリンガー・ジャパン(株)
売り上げランキング: 62333
シュプリンガー・ジャパン(株)
売り上げランキング: 62333
おすすめ度の平均:
Rのプログラミングに関する優れた翻訳書中上級者になりたい貴方へ
Rでプログラミングするのに学ぶ本
簡にして要を得た名著
0 件のコメント:
コメントを投稿