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
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があったとは。
333 名前:132人目の素数さん [2012/01/19(木) 22:16:42.63 ] >>330 おお、そんなsourceがあったとは。
334 名前:132人目の素数さん [2012/01/19(木) 22:17:29.69 ] >>330 おお、そんなsourceがあったとは。
335 名前:132人目の素数さん [2012/01/19(木) 22:18:01.01 ] >>330 おお、そんなsourceがあったとは。
336 名前:132人目の素数さん [2012/01/19(木) 22:18:19.65 ] >>330 おお、そんなsourceがあったとは。
337 名前:308 mailto:sage [2012/01/19(木) 22:19:02.38 ] >>330 おお、そんなsourceがあったとは。
338 名前:308 mailto:sage [2012/01/19(木) 22:19:42.03 ] >>330 おお、そんなsourceがあったとは。
339 名前:308 mailto:sage [2012/01/19(木) 22:20:11.53 ] >>330 おお、そんなsourceがあったとは。
340 名前:132人目の素数さん mailto:sage [2012/01/19(木) 23:14:29.36 ] おおそんウェールズだったとは。
341 名前:308 mailto:sage [2012/01/20(金) 04:32:17.58 ] おまえら、いい加減にしなさい。
342 名前:132人目の素数さん mailto:sage [2012/01/20(金) 05:22:51.54 ] おまえら、いい加減にしなさい。
343 名前:313 mailto:sage [2012/01/20(金) 20:36:44.68 ] スレが伸びていると思ったら、お前ら。。。 でも、実際の話、zapsmall()を知らないで、 条件分岐における数値型の同値の比較を どうやって今まで書いていたのだろうと不思議に思う。
344 名前:132人目の素数さん [2012/01/20(金) 20:42:23.02 ] >>307 こいつ自分で質問の意味わかってのかいな?
345 名前:132人目の素数さん [2012/01/20(金) 23:50:31.94 ] >>343 他の言語と同じように書いてたよ。
346 名前:132人目の素数さん [2012/01/20(金) 23:57:15.16 ] >>343 abs(x-y) < 10^-14 とか
347 名前:132人目の素数さん [2012/01/23(月) 09:35:12.79 ] 簡単なことですが質問させてください。 10*3の配列があり,1列目と2列目,1列目と3列目の計算し, 元の配列に戻したいばあい,どのように配列指定をしてやれば良いのでしょうか? たとえば x <- matrix(1:30, ncol=3) で, 4列目に x[,1]+x[,2] 5列目に x[,1]*x[,2] おそらく x <- matrix(x[,1]+x[,2], x[,1]*x[,3], ???????) で,「???????」を指定すればいいと思うのですが,,,, よろしくお願いします
348 名前:132人目の素数さん mailto:sage [2012/01/23(月) 09:52:39.90 ] >>347 > cbind(x,x[,1]+x[,2],x[,1]*x[,2]) [,1] [,2] [,3] [,4] [,5] [1,] 1 11 21 12 11 [2,] 2 12 22 14 24 [3,] 3 13 23 16 39 [4,] 4 14 24 18 56 [5,] 5 15 25 20 75 [6,] 6 16 26 22 96 [7,] 7 17 27 24 119 [8,] 8 18 28 26 144 [9,] 9 19 29 28 171 [10,] 10 20 30 30 200 こういうこと?
349 名前:347 [2012/01/23(月) 10:02:32.95 ] 早速ありがとうございます >348 matrix()を使わなければいけないと悩んでいた私が馬鹿でした。 matrizだと横展開にしかならず苦悩しておりました。
350 名前:348 mailto:sage [2012/01/23(月) 12:02:36.25 ] >>349 いや、cbind()かmatrix()かは好みの問題だと思うぞ。 > matrix(c(x,x[,1]+x[,2],x[,1]*x[,2]),ncol=5) [,1] [,2] [,3] [,4] [,5] [1,] 1 11 21 12 11 [2,] 2 12 22 14 24 [3,] 3 13 23 16 39 [4,] 4 14 24 18 56 [5,] 5 15 25 20 75 [6,] 6 16 26 22 96 [7,] 7 17 27 24 119 [8,] 8 18 28 26 144 [9,] 9 19 29 28 171 [10,] 10 20 30 30 200
351 名前:132人目の素数さん mailto:sage [2012/01/23(月) 13:13:39.14 ] RStudio最新版(0.94.110)はR-2.14以降も動作していますか? RStudioご利用の方いましたら、ご一報お願いします
352 名前:132人目の素数さん mailto:sage [2012/01/23(月) 13:28:06.82 ] >>351 $ dpkg -l rstudio r-base |tail -2 ii r-base 2.14.1-1oneiric0 GNU R statistical computation and graphics system ii rstudio 0.94.110 RStudio 問題なし。
353 名前:132人目の素数さん mailto:sage [2012/01/23(月) 18:42:28.25 ] Rjpwikiのヲチで申し訳ないが、 河童さんが、par(mfrow=c(2,1))を使わずに、layout(matrix(1:2, 2))を使う理由って何だろう。 layout()だとなんかいいことがあるのかな?
354 名前:308 mailto:sage [2012/01/23(月) 21:15:31.43 ] うん
355 名前:132人目の素数さん [2012/01/25(水) 18:23:35.62 ] スペースで区切られた文字列(数値のみ)で,空白をカウントして改行するってことRでできますか? 例えば 1 2 3 4 5 6 7 8 9 10 11 12.... を 3 2 4 .... という空白ごとに区切って 1 2 3 4 5 6 7 8 9 10 11 12.... としたいのです。 もし可能ならこのような場合,最初の文字列を配列に組み込むべきなのか,文字列として正規表現として処理するべきなのかどちらが好ましいのでしょうか? よろしくお願いします
356 名前:132人目の素数さん mailto:sage [2012/01/25(水) 19:06:09.47 ] >>355 > f355 <- function(x,y){ + s <- unlist(strsplit(x," ")) + res <- vector() + j <- cumsum(y) + res[1] <- paste(s[1:j[1]],collapse='') + res[2] <- paste(s[(j[1]+1):j[2]],collapse='') + res[3] <- paste(s[(j[2]+1):length(s)],collapse='') + return(res) + } > > f355("1 2 3 4 5 6 7 8 9 10 11 12",c(3,2,4)) [1] "123" "45" "6789101112" こんな感じか。 あとは、res[1]からres[3]のところをfor文と条件分岐で処理して、 汎用化すればよいと思う。
357 名前:356 mailto:sage [2012/01/25(水) 19:08:12.54 ] 6789と101112を区切ってなかった。 > f355 <- function(x,y){ + s <- unlist(strsplit(x," ")) + res <- vector() + j <- cumsum(y) + res[1] <- paste(s[1:j[1]],collapse='') + res[2] <- paste(s[(j[1]+1):j[2]],collapse='') + res[3] <- paste(s[(j[2]+1):j[3]],collapse='') + res[4] <- paste(s[(j[3]+1):length(s)],collapse='') + return(res) + } > > f355("1 2 3 4 5 6 7 8 9 10 11 12",c(3,2,4)) [1] "123" "45" "6789" "101112"
358 名前:356 mailto:sage [2012/01/25(水) 19:36:19.47 ] 連投すまんがcut()を使った別解。 > f355.2 <- function(x,y){ + s <- unlist(strsplit(x," ")) + n <- as.integer(cut(as.integer(s),c(0,cumsum(y),Inf))) + sapply(1:length(unique(n)),function(x){s[n==x]}) + } > > f355.2("1 2 3 4 5 6 7 8 9 10 11 12",c(3,2,4)) [[1]] [1] "1" "2" "3" [[2]] [1] "4" "5" [[3]] [1] "6" "7" "8" "9" [[4]] [1] "10" "11" "12" 多分、識者ならsapply()部分をもっと効率よくできる気がする。
359 名前:132人目の素数さん mailto:sage [2012/01/26(木) 01:27:31.67 ] f355.3 <- function(x, y) { STR.SPLIT <- strsplit(x," ")[[1]] ## y = c(3, 5, 1) で c(1,1,1,2,2,2,2,2,3)を返す GROUP <- inverse.rle(list(lengths = y, values = seq_along(y))) ## 上記のGROUPにあわせてsplit() split(x = STR.SPLIT[seq_along(GROUP)], f = GROUP) } ## これなら数字の順番がめちゃくちゃでも、文字列でも行けるかも。spaceが続くとおかしくなるけど f355.3(x = "2 ch R 2012 01 26 2 0 1 2 0 1 2 6 R", y = c(3, 5, 1, 2, 2))
360 名前:355 [2012/01/26(木) 07:03:57.07 ] >356-359 ご教授ありがとうございます。 配列に組み込んだものをループで処理することしか考えてませんでしたので, 以外な回答です。 プログラムに関しては勉強中なのですがなかなか上手くいかず悩んでおります。 ありがとうございます
361 名前:355 [2012/01/26(木) 08:28:33.03 ] 連投申し訳ありません。 これまで統計処理に関してRを利用してきましたが,この度プログラミングもしっかり勉強したいと思うようになりました。 先にも記したようにプログラミングは初学者です。 CやPerlなど多様な言語がありますが,Rの場合どの系統のプログラミング教本で勉強を始めれば良いのでしょうか? オススメ教科書があればよろしくお願い致します。
362 名前:132人目の素数さん mailto:sage [2012/01/26(木) 10:23:38.00 ] >>361 >>356 だけど、正統なプログラミングの勉強をしたことがない。 プログラミングの勉強って、語学の勉強と似ていると思う。 一通り、文法を勉強したら、あとはひたすら経験を積むだけ。 人の表現を聞いて、あぁこういう場面ではこういう風に言えばいいのか、 と人まねを積み重ねる。 一通りの文法レベルの話なら、私はまだ未読だけど、 間瀬先生のRプログラミングマニュアルはどうかな。 間瀬先生の本なら、間違いはないと思う。 >>359 おぉ素晴らしい。rle()の存在を失念していました。
363 名前:359 mailto:sage [2012/01/26(木) 11:44:04.18 ] 統計解析に持っていくためのデータの準備ということであれば Rデータ自由自在(Data Manipulation with R)がおすすめ。 Rプログラミングマニュアル(間瀬)は辞書的な感じ。 Rの基礎とプログラミング技法(石田訳)、プログラミングR(高階)は読み物的な感じ。 レイアウト的に後者の方が読みやすいか。 海外では最近出たThe Art of R Programmingがよいとされている様子。
364 名前:132人目の素数さん [2012/01/27(金) 14:53:34.00 ] あるベクトルの,p番目からq番目までの和を求める関数ってある?
365 名前:364 mailto:sage [2012/01/27(金) 15:34:02.11 ] 基本的な物を見落としておりますた。 すみません
366 名前:132人目の素数さん mailto:sage [2012/01/28(土) 12:45:02.86 ] >>364 sum(vector.name[p:q]) が一番普通か
367 名前:132人目の素数さん mailto:sage [2012/01/30(月) 00:42:00.17 ] コンタープロットで、データがマトリクスになっている場合はいいのですが (x,y,z)= (0,0,0) (1,1,2) (3,2,4) (0,9,2) (2,0,4) みたいに不規則な点列で構成された場合のコンタープロットを作成することは 出来ませんでしょうか? Zの値を0〜1に正規化して、(x,y)の位置にgray(z)で塗りつぶした円を二次元プロットする っていう手法でそれらしいものを作ってはみたものの、やっぱりイマイチなのでw