1 名前:132人目の素数さん mailto:sage [2011/01/09(日) 17:31:49 ] R は統計計算とグラフィックスのための言語・環境です。 統計計算で重宝するデータ型や、複数要素を処理する演算や関数、 解析結果を表示するグラフィックなど、多彩な機能を提供します。 ●関連サイト The R Project www.r-project.org/ RjpWiki www.okada.jp.org/RWiki/ リンク集 www.okada.jp.org/RWiki/?%A5%EA%A5%F3%A5%AF%BD%B8
232 名前:132人目の素数さん mailto:sage [2011/11/09(水) 22:27:50.28 ] 質問があります。 MySQLからデータを取得し、データフレームに読み込ませたいのですが、 日付時刻のカラムがあり、どう読み込ませるのか分からず困っています。 ----- Updated [TAB] Rate 2011-11-08 15:03:00 [TAB] 77.645 2011-11-10 02:04:00 [TAB] 77.6255 2011-11-09 08:03:00 [TAB] 77.585 ----- 単にread.tableでは読み込めませんでした。 Rは初めて使うので基礎的な事しかわかりませんが、どうかご教授ください。
233 名前:132人目の素数さん mailto:sage [2011/11/10(木) 15:56:58.04 ] >>232 直にMySQLならデータベースに直にSQLアクセスするパッケージを使う必要があるのでは?RODBCだっけ? テキストに書き出して読み込むなら、read.tableがつかえると思けど時間が混じると読み込んでから変換が必要だと思う。 いずれも、Rデータ自由自在に書いてあると思う
234 名前:132人目の素数さん mailto:sage [2011/11/15(火) 11:15:58.60 ] 1.i行j列成分がi^2+j^3で与えられる10行10列の行列をfor文を用いて作りなさい。 2.a=1000:1を作成してこれを昇順に並び替えなさい。 3.A=matrix(400:1,20,20)を作成し、この行列を第1列の値が昇順に並ぶように行を並び替えなさい
235 名前:132人目の素数さん mailto:sage [2011/11/15(火) 11:16:21.60 ] ↑の回答わかる方お願いします。
236 名前:132人目の素数さん mailto:sage [2011/11/15(火) 14:26:46.90 ] >>234 また宿題か。 まさか試験中に書き込んでる?
237 名前:132人目の素数さん mailto:sage [2011/11/15(火) 22:14:50.47 ] >>234 > 1.i行j列成分がi^2+j^3で与えられる10行10列の行列をfor文を用いて作りなさい。 しかし、Rでfor文ってその教授はバカじゃないの? 常識的に outer((1:10)^2,(1:10)^3,'+') ってやるものじゃないのか?
238 名前:132人目の素数さん mailto:sage [2011/11/16(水) 00:17:57.03 ] >>234 1. a <- matrix(0, 10, 10); for (i in 1:10) {for (j in 1:10) {a[i, j]=i^2+j^3}} 2. rev(a) 3. A[20:1,]
239 名前:132人目の素数さん mailto:sage [2011/11/17(木) 09:59:23.86 ] R初心者として質問です。 Rを外部プロセスから呼び出したり、 シェルからRプログラムを渡して標準出力で受け取ったりはできるのでしょうか。 なにとぞよろしくお願いします。
240 名前:132人目の素数さん mailto:sage [2011/11/17(木) 12:17:43.67 ] >>239 $ echo 'print(pi)' |r [1] 3.141593 とか $ Rscript -e 'print(pi)' [1] 3.141593
241 名前:240 mailto:sage [2011/11/17(木) 12:20:00.76 ] >>239 > 標準出力で受け取ったり 無意味な例だけど、 $ echo 'print(pi)' |r | sed 's/3/A/g' [1] A.14159A
242 名前:132人目の素数さん mailto:sage [2011/11/17(木) 18:28:14.48 ] >>240-241 ありがとうございました。 活用します。
243 名前:132人目の素数さん mailto:sage [2011/11/18(金) 10:01:50.10 ] >>239 シェルスクリプトから、短いRスクリプトを呼ぶなら、 ヒアドキュメントを使う方法が個人的に好き。 R --vanilla --slave <<_END_OF_R_ > output_of_R.txt print(pi) _END_OF_R_ 別に、Rに限らず、PerlでもPythonでもこの方法は使えますが、、、
244 名前:132人目の素数さん mailto:sage [2011/11/18(金) 10:12:24.08 ] >>243 おぉ、Rって標準入力からそのまま普通に使えたのか
245 名前:132人目の素数さん [2011/11/18(金) 18:03:12.10 ] 電波テロ装置の戦争(始) エンジニアと参加願います公安はサリンオウム信者の子供を40歳まで社会から隔離している オウム信者が地方で現在も潜伏している それは新興宗教を配下としている公安の仕事だ 発案で盗聴器を開発したら霊魂が寄って呼ぶ来た <電波憑依> スピリチャル全否定なら江原三輪氏、高橋佳子大川隆法氏は、幻聴で強制入院矛盾する日本宗教と精神科 <コードレス盗聴> 2004既に国民20%被害250〜700台数中国工作員3〜7000万円2005ソウルコピー2010ソウルイン医者アカギ絡む<盗聴証拠> 今年5月に日本の警視庁防課は被害者SDカード15分を保持した有る国民に出せ!!<創価幹部> キタオカ1962年東北生は二十代で2人の女性をレイプ殺害して入信した創価本尊はこれだけで潰せる<<<韓国工作員鸛<<<創価公明党 <テロ装置>>東芝部品)>>ヤクザ<宗教<同和<<公安<<魂複<<官憲>日本終Googl検索
246 名前:132人目の素数さん [2011/11/18(金) 18:03:58.46 ] 魂は幾何学 誰か(アメリカ)気づいた ソウルコピー機器
247 名前:132人目の素数さん mailto:sage [2011/11/19(土) 03:14:20.46 ] persp関数により3次元グラフを描画しているのですが、borderの幅が小さいためか、グラフが真っ黒になってしまいます。 この幅を変更する方法はありますか?また、他の解決方法がありましたら、教えてください。
248 名前:132人目の素数さん mailto:sage [2011/11/19(土) 11:32:20.50 ] >>247 グラフを大きくした方がよさげだけど、 pdf(file="247.pdf",width=14,height=14) persp(...) dev.off() ぐらいから、サイズを試行錯誤してみれば? borderの幅が線幅のことなら、lwdなどで指定する。
249 名前:132人目の素数さん mailto:sage [2011/11/19(土) 19:55:55.59 ] >>248 コメントありがとうございます。 サイズや、線幅を変えて試行錯誤してみましたが、どうもborderの線と線の間隔が狭いのが原因のようです。 この線と線の間隔の設定はできないのでしょうか?よろしくお願いします。
250 名前:132人目の素数さん mailto:sage [2011/11/21(月) 08:56:04.33 ] >>249 むしろ、border=NAとか
251 名前:132人目の素数さん [2011/11/25(金) 21:55:00.40 ] >>215 統計数理研究所で、昨日からRの無料講習会が開かれているようですね。 日程:2011年11月24日(木)− 11月26日(土) 場所:統計数理研究所(東京都立川市)3階セミナー室 2 (D304) データ解析環境Rの整備と利用 mid.ism.ac.jp/stats/msg01502.html
252 名前:132人目の素数さん mailto:sage [2011/11/26(土) 00:49:00.80 ] いや、講習会じゃないんだけど…
253 名前:132人目の素数さん mailto:sage [2011/12/05(月) 12:21:38.19 ] >>238 ありがとうございました
254 名前:132人目の素数さん mailto:sage [2011/12/05(月) 12:21:47.65 ] 解答分かる方お願いします <演習問題1> i番目の要素がi^2+1で与えられ各要素に名前が付いている次のベクトルを作りなさい。 (注:a[2]=5等のように直接値を決めるのはやめること。) A B C D E F G H I J K L M N O P Q R S T U V 2 5 10 17 26 37 50 65 82 101 122 145 170 197 226 257 290 325 362 401 442 485 <演習問題2> matrix(1:100,10,10)を作り、行の順番を入れ替え、そして行と列に名前を付けることで 次の行列を作りなさい。 a b c d e f g h i j A 10 20 30 40 50 60 70 80 90 100 B 9 19 29 39 49 59 69 79 89 99 C 8 18 28 38 48 58 68 78 88 98 D 7 17 27 37 47 57 67 77 87 97 E 6 16 26 36 46 56 66 76 86 96 F 5 15 25 35 45 55 65 75 85 95 G 4 14 24 34 44 54 64 74 84 94 H 3 13 23 33 43 53 63 73 83 93 I 2 12 22 32 42 52 62 72 82 92 J 1 11 21 31 41 51 61 71 81 91 <演習問題3> 第i,j要素がi^5+jで与えられる10行10列の行列をfor文を使って作りなさい。 <演習問題4> A=matrix(1:100,10,10)を作り 第3列目の平均を計算しなさい。
255 名前:132人目の素数さん mailto:sage [2011/12/05(月) 13:03:09.46 ] 教員がココを見ていたら、>>254 には単位をやらないことを勧める。 >>254 解答は1つではなく、人によって全く異なる解答例になる。 「100字以内で答えよ」という問題の解答が1人1人異なるのと同じ。 誰かがここに解答を示すかも知れないが、 ここの解答を写したことは、自分で独自に改変しない限り、バレるよ。
256 名前:132人目の素数さん mailto:sage [2011/12/05(月) 13:51:41.75 ] 興味ない授業だが、取らなきゃいけない科目とかなのかな?
257 名前:132人目の素数さん mailto:sage [2011/12/05(月) 23:50:31.46 ] >>254 ヒント names関数、xxxnames関数 LETTERS[1:10]、letters[1:10] (LETTERS、letters は、組み込みの定数ベクター)
258 名前:132人目の素数さん mailto:sage [2011/12/06(火) 06:25:24.35 ] >>254 統計学の講義⁇
259 名前:132人目の素数さん mailto:sage [2011/12/06(火) 21:50:20.66 ] 質問させてください データフレームDFがあって DF[, 1] にはコードが、 2列目以降は価格が入っています 2列目から501列目まで各時点の値です 行数は2000個程度です このデータフレームから2つ選んで価格を足し合わせたいのですが 簡潔な方法はありますでしょうか? 現状は a <- combn(DF[, 1], 2) temp_a <- merge(t(a[,1]), DF) temp_b <- merge(t(a[,2]), DF) res <- temp_a[, -1] + temp_b[, -1] でやろうかと思っていますが データ数がデータ数なのでもっと高速な方法がありましたらご教授ください お願いいたします
260 名前:132人目の素数さん mailto:sage [2011/12/07(水) 16:15:54.22 ] >>259 rownames(DF) <- DF[,1] colSums(DF[t(combn(DF[,1],2)),]) ということ?
261 名前:132人目の素数さん [2011/12/07(水) 21:14:27.18 ] すみません、こんな質問していいのか分からないのですが、 検索しても分からなかったので質問させてください 自分は参考書を本屋でめくった程度のものなのですが、 PHPとR言語は連携できるのでしょうか? また、CやPythonなどプログラミング言語にて簡単なもので言えばユークリッドとかベイズとかアルゴリズム化で処理できますが、 R言語の場合処理速度などはどの程度のものなのでしょうか? Cなどで統計ものを書くよりも、R言語の方がシンプルなような印象を受けたのですが、あまり連携しているのを見かけません 何かR言語にデメリットがあって連携しないのかなと思ったのですが
262 名前:132人目の素数さん mailto:sage [2011/12/07(水) 22:30:28.03 ] >>260 それだと、 colSums(DF[,2:501])*(2000-1) と同じじゃね? >>259 「2つ選んで価格を足し合わせ」る、っていうのが、イマイチ具体的に理解できない。もっと正確に書いてくれないだろうか それに、なぜ全行について2つの全組み合わせが必要なの?
263 名前:259 mailto:sage [2011/12/07(水) 23:20:26.01 ] >260,262 ありがとうございます 例がわかりにくかったようで申し訳ないです ランダム変数randuを用いた例だと DF <- data.frame(randu) 一列目がコードと仮定します colnames(DF) <- c("CODE", "VAL1", "VAL2") rownames(DF) <- DF[, 1] combi <- combn(rownames(DF), 2) DF1 <- DF[t(combi)[, 1], -1] DF2 <- DF[t(combi)[, 2], -1] DFZ <- data.frame(t(combi), DF1 + DF2) colnames(DFZ)[1:2] <- c("CODE1", "CODE2") 欲しいのはDFZで今回はranduを用いたので列はコードを除けば2つで 行数は400C2の約8万ですが 実際のデータは元データは行数2000 列数500ほどなので 結構時間がかかります これより高速化はむずかしいでしょうか? よろしくお願いいたします。
264 名前:きど [2011/12/07(水) 23:22:43.57 ] Rのテンドログラムの保存の方法を知りたいのですが。USBなど。。。
265 名前:132人目の素数さん mailto:sage [2011/12/08(木) 01:04:05.71 ] >>263 詳細、ありがとうございました 確実に言えるのは、デカいデータなので、後に使う予定がないのならDF1/DF2は作るなっ てことかな (object保持の負荷が大きい)。他にも不要なobjectはrm()しておく tcombi <- t(combi) # これは 2000C2 でも瞬時 DFZ <- cbind(tcombi, DF[tcombi[, 1], -1] + DF[tcombi[, 2], -1]) とするだけでも、「少しは」速くなるはず DFZも丸ごと全部作らないで、tcombiを適当に分割したのを使って部分的に作っては その都度ファイルに追記書き出しして、最終的にファイルから読み込んで df 化する方が 速いかも(テストしてないけど) もう既に試されたかもしれない、ありふれた考えなので申し訳ないが...
266 名前:132人目の素数さん mailto:sage [2011/12/08(木) 09:17:07.19 ] >>264 画像ファイルへの出力方法を調べてください。 検索キーワードは「R グラフィックディバイス」です。 postscript(), png()などさまざまなものがあります。 X11()などスクリーン上のディバイスをコピーするなら、 dev.copy2eps(file="hoge.eps") で、作業ディレクトリにeps画像ファイルが保存されます。 USBメモリへ保存したいなら、パス付きでファイル名を書けばよいです。 USBのマウント先が/Volume/FUGAなら、 dev.copy2eps(file="/Volume/FUGA/hoge.eps") とします。 あなたが自分の環境を秘密しているので、助言できるのはこのくらいです。 詳細は、グーグル先生にお尋ねください。
267 名前:259 mailto:sage [2011/12/08(木) 23:19:36.17 ] >>265 全部でやると32bitなものでメモリの使用量が4GBを超えてしまいましたので 提示いただいた分割する方法でファイルに書き出して対応できました ありがとうございました
268 名前:132人目の素数さん mailto:sage [2011/12/08(木) 23:34:00.09 ] >>267 32bitの壁が問題になるなら64bitつかった方がよいと思うのだけど。 自分はRのために3GB→6GBにメモリ増設した。
269 名前:132人目の素数さん mailto:sage [2011/12/09(金) 22:44:47.03 ] >> 267 よかったですね 参考のため、もし差し支えなければ、どれくらいの時間がかかったのか、 動作環境も含めて教えていただけないでしょうか?
270 名前:132人目の素数さん [2011/12/10(土) 23:33:27.19 ] 自然言語処理など、テキストを処理し、統計計算をしたいのですが、PythonとRとはどのように違うのでしょうか? やっぱ専門であるのでR言語の方がいいのでしょうか? PHP、データベースからデータを得て、処理結果を送り返すためのシステム部分にPythonかRを使いたいと考えています RとPythonを比較すること自体おかしいのかもしれませんが、上記のような処理の為の本を見ると、この2つが良く出てきます Pythonはプログラミング言語であるので、PHPとかとは処理の連携が簡単でしょうけど、R言語についてはプログラミングをしていても(そういう環境下では)殆ど情報が出てこない、名前を聞かないもので
271 名前:132人目の素数さん mailto:sage [2011/12/10(土) 23:48:50.77 ] >>270 統計計算のレベルによるだろうけど、本格的に統計処理を入れるなら、 Rを利用した方が楽だろう。PHP-Python-Rという風に使ってもよいのでは。 rpy2とか検索してみて
272 名前:132人目の素数さん [2011/12/11(日) 00:12:09.89 ] >>271 返答ありがとうございます 確かに、記述方法がRは非常にシンプルだと本屋で調べてみて思いました Pythonはまだ学習し始めたところですが、PHP、Cなどで書くととんでもないというのがもの凄く簡単に書かれていて驚きました ところで、今R言語について調べていたら、対話式がメインとか書かれているようでした R言語は、他の言語のようにテキストエディタで記述し、自動処理出来るのではないのでしょうか? PHPなどと違い、ブラウザに表示とか、Linux上でファイルやディレクトリを操作したりとかは無理かもしれませんが、 PHPからRで書かれたファイルを呼び出し処理をし、結果を受け取り・・・といったことをやりたいと思っていたのですが rpy2を今から検索してみます
273 名前:259 mailto:sage [2011/12/12(月) 22:04:22.39 ] >>268 個人の環境ではないので簡単には64bitには変えられないのです >>269 この処理だけではないので一概には言えませんが、一断面10分程度です 環境はcentOS6で xeonE3110です ありがとうございました
274 名前:132人目の素数さん [2011/12/13(火) 06:18:01.69 ] え?Python???と思ってググったら、 いまどきは、こんな言語がPythonと呼ばれているのか。
275 名前:132人目の素数さん mailto:sage [2011/12/14(水) 22:48:13.92 ] 2変数の非線形連立方程式の解き方教えていただけませんでしょうか?
276 名前:132人目の素数さん mailto:sage [2011/12/15(木) 23:27:48.29 ] ちょっと教えてください # 疑似観測値 (行方向はパターン、列方向は時系列) DF <- data.frame(t(t(colnames(randu))),t(randu)) colnames(DF) <- c("PATTERN", gsub("X", "", colnames(DF)[-1])) # 移動平均の計算 (40サンプル分) ma_filter <- rep(1, 40) / 40 MADF <- data.frame(DF[,1], t(filter(t(DF[, -1]), filter = ma_filter, method = "convolution", sides = 1))) colnames(MADF) <- colnames(DF) # 移動平均の標準偏差(2sigma)の計算 for( i in 41:ncol(MADF)){ if(i == 41){ std <- apply(MADF[, (i-39):i], 1, sd) } else{ temp <- apply(MADF[, (i-39):i], 1, sd) std <- rbind(std, temp) } } MASIGMADF <- data.frame(DF[,1], t(rep(NA,39)), t(std*2)) colnames(MASIGMADF) <- colnames(MADF) # データのある部分だけを抽出 DF <- DF[, c(1,80:ncol(DF))] MADF <- MADF[, c(1,80:ncol(MADF))] MASIGMADF <- MASIGMADF[, c(1,80:ncol(MASIGMADF))] 上記のような時系列データとその移動平均および標準偏差があると仮定します このとき、時系列の観測データが初めて移動平均+標準偏差の値を超えた時点から 再び移動平均に収束するまでをTRUE、それ以外をFALSEとするようなフラグのデータフレーム(形式はDFと同じ)を作成したいのですが、 良い方法はありますでしょうか
277 名前:132人目の素数さん mailto:sage [2011/12/19(月) 15:08:40.40 ] 来年から文系大学生です。 R言語って文系学部でも使いますか? あと、使えると就職や進学に有利でしょうかね?
278 名前:132人目の素数さん mailto:sage [2011/12/19(月) 15:33:46.79 ] >>277 文系とは具体的に、どの分野? 経済学や社会学など社会科学分野なら統計解析は必須だろうし、 その他の文系でも、心理学、計算言語学、数理地理学とかデータ処理を扱うなら、 統計解析は必須だろう。統計解析を行うなら、R言語を使うこともあるだろう。 Rを自由自在に使えると就職や進学に有利かと問われれば、多くの場合、否でしょう。
279 名前:132人目の素数さん mailto:sage [2011/12/19(月) 19:22:08.37 ] >>278 経済学。 十分条件じゃなくて、必要条件であるみたいですね。 れすトンクス。
280 名前:132人目の素数さん [2011/12/21(水) 02:29:25.07 ] すんません、Rまだまだ初心者なのですが、元データをフーリエ変換したデータにおける正準相関分析をしたくて、デフォで入っているcancorとかでなく、データのこともあり自分で作らなきゃならなくて function(a,b,c,d,m,n){ e<-matrix(Re(fft(a[1:n]-mean(a[1:n]))),1,n,byrow=T) #4つのデータのfftをそれぞれ行列に入れる f<-matrix(Re(fft(b[1:n]-mean(b[1:n]))),1,n,byrow=T) g<-matrix(Re(fft(c[1:n]-mean(c[1:n]))),1,n,byrow=T) h<-matrix(Re(fft(d[1:n]-mean(d[1:n]))),1,n,byrow=T) j<-matrix(0,4,n) #上記で作ったデータを1つの行列に入れる j[1,]<-e j[2,]<-f j[3,]<-g j[4,]<-h k<-j[,m] #m列目の成分を取り出す o<-(1/n)^2*k%*%t(k) #粗いですがスペクトル密度関数の推定量をもとめる p<-o[c(1,2),c(1,2)] q<-o[c(1,2),c(3,4)] r<-o[c(3,4),c(3,4)];u<-solve(p);v<-solve(r);w<-t(q); s<-eigen(u%*%q%*%v%*%w) #固有値問題を解く return(list(j[1,],j[,m],o,p,q,r,s))} という関数を定義して実行すると 以下にエラー solve.default(p) : システムは数値的に特異です:条件数の逆数 = 3.72483e-17 とでるんですが、どうなおせばよいでしょうか。
281 名前:132人目の素数さん mailto:sage [2011/12/22(木) 22:26:52.11 ] >>273 273みたいな使い方はそのコンピュータではアブノーマルなの? なんでCentOS6なのにまだ32bitなの? 管理者バカなんじゃないの。 今、パソコンが安いから実験機として買ってメモリてんこ盛りにして64bitOSを作ろうって提案したら? あとせっかくだからマルチブートの仕方を覚えて、32bitと64bitを共存させて、他にもOSを入れられる ように設定しておけばいい。 ttp://nttxstore.jp/_II_P813280396
282 名前:132人目の素数さん [2011/12/23(金) 09:51:58.81 ] www.r-project.org/ R version 2.14.1 (December Snowflakes) has been released on 2011-12-22. ってDownloadのところには2.14.0しかないんだけど、 Download R-2.14.1 RC build for Windows (46 megabytes, 32/64 bit) じゃなくて、正式なリリース版の2.14.1って、どこで落とせますか?
283 名前:132人目の素数さん mailto:sage [2011/12/23(金) 10:18:18.71 ] >>282 ttp://cran.r-project.org/src/base/R-2/R-2.14.1.tar.gz
284 名前:132人目の素数さん mailto:sage [2011/12/23(金) 10:26:11.01 ] >>283 あー、ソースレベルって事すか。 バイナリリリースはちょっと待てっていうことですかね。 ありがとうございました。
285 名前:132人目の素数さん mailto:sage [2011/12/23(金) 23:31:39.85 ] >>280 ginv では?
286 名前:132人目の素数さん mailto:sage [2011/12/25(日) 10:11:34.88 ] >>282 essrc.hyogo-u.ac.jp/cran/ とかに Download R 2.14.1 for Windows (45 megabytes, 32/64 bit) が入りましたよ
287 名前:132人目の素数さん mailto:sage [2011/12/25(日) 16:26:21.07 ] >>286 さんくす。めりくり。らいよろ。
288 名前:132人目の素数さん [2011/12/27(火) 02:47:24.36 ] わからなかったので教えてください。 階層型クラスタ分析には、サンプル(ケース)に対してクラスタリングするのか、 変数に対してクラスタリングするのかでわかれるかと思いますが、 Rではサンプルに対してしかクラスタ分析できないのでしょうか?
289 名前:132人目の素数さん [2011/12/30(金) 12:46:23.67 ] UNIXにインストールされているRのシェルからの起動の仕方を教えて下さい。
290 名前:132人目の素数さん mailto:sage [2011/12/30(金) 14:45:51.73 ] >>289 r
291 名前:132人目の素数さん [2011/12/30(金) 18:00:57.18 ] 横軸を date オブジェクト、縦軸を数値とする折線グラフを描いたのですが、 垂直線を追加しようとしても上手く入りません。 偉い人、解説をよろしくお願いします。 x <- strptime(c("2009年12月14日","2009年12月21日","2009年12月28日","2010年1月4日"),"%Y年%m月%d日") y <- c(10,20,5,15) plot(x,y,type="b") abline(v=strptime("2009年12月21日","%Y年%m月%d日"))
292 名前:291 [2011/12/30(金) 18:01:59.90 ] 自己解決しました。 abline(v=as.numeric(strptime("2009年12月21日","%Y年%m月%d日"))) でOKでした。
293 名前:132人目の素数さん mailto:sage [2012/01/01(日) 13:50:09.79 ] >>290 rとRの区別もつかんのか
294 名前:132人目の素数さん mailto:sage [2012/01/01(日) 14:22:08.14 ] >>293 rもリンクされてなかったっけ?
295 名前:132人目の素数さん mailto:sage [2012/01/01(日) 16:37:59.98 ] >>294 rはRとは別のソフト $ r --version |head -1 r ('littler') version 0.1.5 $ R --version |head -1 R version 2.14.1 (2011-12-22)
296 名前:132人目の素数さん mailto:sage [2012/01/01(日) 23:50:07.45 ] ややこしいなあ。
297 名前:132人目の素数さん mailto:sage [2012/01/02(月) 01:26:00.73 ] >>296 これをややこしいと思う人は、 incase-sensitiveな文化に脳を冒されている人
298 名前:132人目の素数さん mailto:sage [2012/01/04(水) 14:54:08.36 ] >>295 Mac OS X版だと同一ファイルにリンクされてた。 /usr/bin/R -> /Library/Frameworks/R.framework/Resources/bin/R /usr/bin/r -> /Library/Frameworks/R.framework/Resources/bin/R でも大文字Rのほうが標準っぽいな。 >>297 case-insensitiveだな。
299 名前:132人目の素数さん mailto:sage [2012/01/04(水) 16:16:24.48 ] >>298 MacPorts版のMacOSX版(ややこしいな)だとどうだろう。
300 名前:132人目の素数さん mailto:sage [2012/01/10(火) 23:18:34.13 ] 簡単そうでなかなかできないので相談させてください。 > a <- matrix(1:9,3) > (b <- list(a,a)) [[1]] [,1] [,2] [,3] [1,] 1 4 7 [2,] 2 5 8 [3,] 3 6 9 [[2]] [,1] [,2] [,3] [1,] 1 4 7 [2,] 2 5 8 [3,] 3 6 9 こんなリストがあったとして、これを3次元array ,,1 [,1] [,2] [,3] [1,] 1 4 7 [2,] 2 5 8 [3,] 3 6 9 ,,2 [,1] [,2] [,3] [1,] 1 4 7 [2,] 2 5 8 [3,] 3 6 9 こんな感じに変換するにはどうすればよいですか? やりたいことは、b[1,1,]とかb[1,2,]とか、 リストの要素である行列を貫いて、行列の各セルの値(ベクトル)を取り出したいのです。 arrayであれば、例えばb[3,3,]でc(9,9)が取り出せるはず。
301 名前:132人目の素数さん mailto:sage [2012/01/11(水) 01:10:41.37 ] ## ベクトルまで分解するunlistを使うとできたっぽいけど期待されている答えではないかも、、 a <- matrix(data = 1:9, nrow = 3) (b <- list(a,a)) unlist(b) test.array <- array(data = unlist(b), dim = c(3,3,2)) test.array test.array[3,3,] ## ちなみに、リストのまま処理してはだめ? sapply(X = b, FUN = function(y) {y[3,3]})
302 名前:132人目の素数さん mailto:sage [2012/01/11(水) 01:53:23.83 ] >>301 多謝! listのままだとその先の操作に進みにくかったので、arrayを検討していました。 unlist()は盲点でした。ありがとうございます。 > res <- matrix(rep(list(NA),9),3) > class(res[1,1]) [1] "list" > for(i in 1:3){for(j in 1:3){res[i,j] <- list(test.array[i,j,])}} > res [,1] [,2] [,3] [1,] Integer,2 Integer,2 Integer,2 [2,] Integer,2 Integer,2 Integer,2 [3,] Integer,2 Integer,2 Integer,2 > unlist(res[2,2]) [1] 5 5 ばっちりです。各セルに元データのセルの値を集めることが出来ました。 本番のデータでやってみます。 > for(i in 1:3){for(j in 1:3){res[i,j] <- list(sapply(b,function(y){y[i,j]}))}} リストのままでも出来てしまいました。すみません。
303 名前:132人目の素数さん [2012/01/15(日) 00:10:57.15 ] CだとかRだとかのような1文字の名前ではサーチするのが難しい。
304 名前:132人目の素数さん [2012/01/15(日) 12:02:12.63 ] その程度しか検索単語が思い浮かばないようでは()難しい
305 名前:132人目の素数さん mailto:sage [2012/01/15(日) 19:09:49.95 ] >>303 まぁ r-project r-script r 統計 このあたりですね
306 名前:132人目の素数さん mailto:sage [2012/01/16(月) 12:50:23.28 ] >>303 まぁまずはRSiteSearch()だろ。 そんで、ttp://www.rseek.org/ とか。 最後に>>305 の検索語でgoogleを使えばいいんじゃない? ○○を実装したパッケージを探すなら、「cran ○○」で検索する。
307 名前:132人目の素数さん [2012/01/17(火) 00:15:09.67 ] すんません、正方行列AのA^{-1/2}ってどう計算すれば良いですかね?
308 名前:132人目の素数さん [2012/01/17(火) 12:46:55.11 ] >>307 言いたいことは、こういうこと? 正方行列Aが逆行列を持ち、A^{-1} の固有値が m,n なら、 A^{-1/2} = (A^{-1}+ mnI)/(m+n) 違ってたら、ごめん。
309 名前:308 [2012/01/17(火) 12:48:44.46 ] あ、違ってた。 A^{-1/2} の固有値が m,n なら、 A^{-1/2} = (A^{-1}+ mnI)/(m+n) かな。
310 名前:308 [2012/01/17(火) 20:39:11.48 ] >>307 >>308 ,309 が、しっちゃかめっちゃかだったので捲土重来を目指して… A^t 転置、A^* 複素共役 として、 A が、A^t* A = A A^t* を満たし、A のすべての固有値が正だったら、 (U^t*)U = I を満たす行列 U と対角行列 D を使って、 A = UDU^{-1} と書けるから、 A^{-1/2} = UD^{-1/2}U^{-1} (ただし、D^{-1/2} は、D の各対角成分d_{i,i}に対し、 D^{-1/2} の各対角成分 x_ {i,i} = 1/√d_{i,i} としたもの。) という理解であってるのかな。
311 名前:308 [2012/01/17(火) 22:19:59.38 ] >>307 R-Sources ttp://cse.naro.affrc.go.jp/takezawa/r-tips/r/20.html 見たけど、これで行けるんじゃね? > A <- matrix(c(1,2,0,3), 2, 2) > B <- eigen(A)$vectors %*% diag(1/sqrt(eigen(A)$values)) %*% solve(eigen(A)$vectors) > solve(A) [,1] [,2] [1,] 1.0000000 0.0000000 [2,] -0.6666667 0.3333333 > B %*% B [,1] [,2] [1,] 1.0000000 0.0000000 [2,] -0.6666667 0.3333333 > A %*% B %*% B [,1] [,2] [1,] 1.000000e+00 0 [2,] 2.217736e-16 1 最後のがキッチリ単位行列にならないのは、 丸め誤差の所為だから仕方ないと思われ。
312 名前:308 [2012/01/17(火) 22:26:17.13 ] > A <- matrix(c(3,2,0,3,4,1,0,2,3), 3, 3) > B <- eigen(A)$vectors %*% diag(1/sqrt(eigen(A)$values)) %*% solve(eigen(A)$vectors) > eigen(A)$values [1] 6.3722813 3.0000000 0.6277187 > solve(A) [,1] [,2] [,3] [1,] 0.8333333 -0.75 0.5 [2,] -0.5000000 0.75 -0.5 [3,] 0.1666667 -0.25 0.5 > B %*% B [,1] [,2] [,3] [1,] 0.8333333 -0.75 0.5 [2,] -0.5000000 0.75 -0.5 [3,] 0.1666667 -0.25 0.5
313 名前:132人目の素数さん mailto:sage [2012/01/18(水) 10:57:06.79 ] >>312 > A %*% B %*% B [,1] [,2] [1,] 1.000000e+00 0 [2,] 3.330669e-16 1 > zapsmall(A %*% B %*% B) [,1] [,2] [1,] 1 0 [2,] 0 1
314 名前:308 [2012/01/18(水) 12:32:51.26 ] >>312 おお、そんな関数があったとは。
315 名前:308 [2012/01/18(水) 12:33:01.61 ] >>313 おお、そんな関数があったとは。
316 名前:308 [2012/01/18(水) 22:59:15.60 ] >>314 おお、そんな関数があったとは。
317 名前:308 [2012/01/18(水) 22:59:44.42 ] >>315 おお、そんな関数があったとは。
318 名前:308 [2012/01/18(水) 23:01:26.21 ] >>316 おお、そんな関数があったとは。
319 名前:308 [2012/01/18(水) 23:08:57.17 ] >>317 おお、そんな関数があったとは。
320 名前:308 [2012/01/18(水) 23:35:40.76 ] >>318 おお、そんな関数があったとは。
321 名前:308 [2012/01/19(木) 08:20:42.49 ] >>319 おお、そんな関数があったとは。
322 名前:308 [2012/01/19(木) 08:22:06.35 ] >>320 おお、そんな関数があったとは。
323 名前:308 [2012/01/19(木) 08:23:29.36 ] >>321 おお、そんな関数があったとは。
324 名前:132人目の素数さん mailto:sage [2012/01/19(木) 08:24:58.31 ] >>312 おお、そんな関数があったとは。
325 名前:132人目の素数さん mailto:sage [2012/01/19(木) 08:25:39.88 ] >>313 おお、そんな関数があったとは。
326 名前:308 [2012/01/19(木) 08:26:49.60 ] >>322 おお、そんな関数があったとは。
327 名前:132人目の素数さん mailto:sage [2012/01/19(木) 16:46:26.30 ] >>323 おお、そんな関数があったとは。
328 名前:132人目の素数さん mailto:sage [2012/01/19(木) 18:16:15.47 ] >>313 おお、そんな関数があったとは。
329 名前:308 [2012/01/19(木) 19:21:49.25 ] >>312 おお、そんな関数があったとは。
330 名前:132人目の素数さん mailto:sage [2012/01/19(木) 21:24:53.73 ] >>305 あと、R sourceとかね。
331 名前:132人目の素数さん mailto:sage [2012/01/19(木) 21:40:30.51 ] >>330 おお、そんな関数があったとは。
332 名前:132人目の素数さん mailto:sage [2012/01/19(木) 22:15:43.34 ] >>330 おお、そんなsourceがあったとは。