統計解析R たぶんpart3くらい

このエントリーをはてなブックマークに追加
1デフォルトの名無しさん
あっても良さそうなんですが,需要ないの?

過去スレのうちのひとつ
統計解析R
http://toro.2ch.net/test/read.cgi/tech/1285597198/
2デフォルトの名無しさん:2012/06/22(金) 13:33:48.72
このスレッドは天才チンパンジー「アイちゃん」が
言語訓練のために立てたものです。

アイと研究員とのやり取りに利用するスレッドなので、
関係者以外は書きこまないで下さい。

                  京都大学霊長類研究所
3デフォルトの名無しさん:2012/06/22(金) 13:34:23.47
Rのスレは別の板にあったと思うけど
4デフォルトの名無しさん:2012/06/22(金) 13:38:51.83
数学板にあったけど、あっちはサーバーが飛んじゃったから、こっちに立ててもいいんじゃないかな。
5デフォルトの名無しさん:2012/06/22(金) 14:03:13.96
R ってデータベース?
6デフォルトの名無しさん:2012/06/22(金) 14:07:26.08
R言語
7デフォルトの名無しさん:2012/06/22(金) 14:14:08.01
SQLみたいなもの
8uy:2012/06/22(金) 14:55:08.20
Rはゴミカス向けだと断言する

俺はゴミカスだがエリートゴミカスだ

お前らのような下級ゴミカスとは格が違う
9デフォルトの名無しさん:2012/06/22(金) 16:45:46.35
数学版から誘導されてきたけど、
Rjpwikiと裏Rjpwikiのヲチはここでよいの?
10デフォルトの名無しさん:2012/06/22(金) 16:54:24.99
いいんじゃないの
11デフォルトの名無しさん:2012/06/22(金) 20:08:15.52
これのクラスとかのオブジェクト指向言語的な機能って
なんか目指すところが普通の言語と違ってる感じだよな
12デフォルトの名無しさん:2012/06/22(金) 20:28:36.18
>>11
具体的にどのように?
13デフォルトの名無しさん:2012/06/23(土) 02:07:10.62
programmerというよりはstatisticianが使いやすいことを念頭にしているから?
14デフォルトの名無しさん:2012/06/23(土) 20:38:20.57
>>13
R言語って、統計解析ソフトのマクロ言語みたいなものだから、
一般のプログラミング言語と比較する方が間違っていると思う。
Rの基本関数はCやfortranで書かれたものを呼び出しているに過ぎない。
15デフォルトの名無しさん:2012/06/24(日) 00:59:34.17
なんでこの板にスレ立てたの?
16デフォルトの名無しさん:2012/06/24(日) 17:58:17.10
Rを使ってる奴等はなにに使っているのか
17uy:2012/06/24(日) 18:16:28.30
俺はゴミカスだがエリートゴミカスでR
お前らのような下級ゴミカスとは格が違うのでR
18uy:2012/06/24(日) 18:36:21.91
ゴミ
19 忍法帖【Lv=40,xxxPT】 :2012/06/24(日) 18:37:28.15
そういえば S のスレはなんでないの?
20uy:2012/06/24(日) 18:38:38.18
Mのスレならあるぞ
ちなみに俺はMだ
21デフォルトの名無しさん:2012/06/25(月) 00:19:02.83
>>16
10個くらいのパラメータあるときに、
pairsで、総当りの相関見るのは便利
22デフォルトの名無しさん:2012/06/27(水) 10:48:52.12
これってマスマティカみたいな使い方できるの?
23デフォルトの名無しさん:2012/06/27(水) 12:30:40.49
>>22
つmaxima
24デフォルトの名無しさん:2012/06/27(水) 13:16:37.54
ありがとうございます。
maximaも荒らしが凄いのねプログラム板に移動したいですね。
25デフォルトの名無しさん:2012/06/28(木) 01:50:26.32
2ch の見過ぎで ステマ ティカに見えた。
26デフォルトの名無しさん:2012/08/05(日) 14:19:49.11
27デフォルトの名無しさん:2012/09/28(金) 23:24:36.57
【R言語】統計解析フリーソフトR 第4章【GNU R】
http://uni.2ch.net/test/read.cgi/math/1294561909/
28デフォルトの名無しさん:2012/11/19(月) 21:54:33.25
データを分割してスペクトルを測定しようとして次のようなプログラムを書いてみたんですが、
「以下にエラー spec.pgram(x, ...) : 添え字が許される範囲外です 」
と出て動かないですが何がおかしいんでしょうか?
行ごとに実行して動いているんですけど。

function(x)
{
n <- length(x)
l <- 40000
m <- floor(n/l)
for (i in 0:(m -1))
{
spectrum(ts(x[i*l+1 : (i+1)*l],deltat=.0025))
}
}
29デフォルトの名無しさん:2013/02/18(月) 15:28:53.89
>>28
カッコ追加してみた。
spectrum(ts(x[(i*l+1) : ((i+1)*l)],deltat=.0025))
30デフォルトの名無しさん:2013/06/07(金) 03:19:25.84
馬鹿には無理
31デフォルトの名無しさん:2013/07/17(水) NY:AN:NY.AN
RなんかよりもIncanterを使うべき
32デフォルトの名無しさん:2013/07/17(水) NY:AN:NY.AN
>>31
>Incanter
知らなかったので調べてみたら、
本当にExcel統計に負けるほどの基本関数しかなさそう。
経済、医学、生態とか分野別になってもいないし、
ベイズ推定とかデジタル地図の空間演算とか何もなさそう。

> RなんかよりもIncanterを使うべき
お薦めの点はどういうところ?
33デフォルトの名無しさん:2013/07/17(水) NY:AN:NY.AN
俺が作った(きりっ
34デフォルトの名無しさん:2013/07/17(水) NY:AN:NY.AN
lispで書ける。それだけだが、それこそが何ものにもかえがたい。
35デフォルトの名無しさん:2013/07/17(水) NY:AN:NY.AN ID:wY2Fpqcr!
groovyからR呼べないの?Javaって機械学習周りのOSSツール沢山あるのに
最近、Apache族がGroovyをデファクトで採用しそうな感あるよね
36デフォルトの名無しさん:2013/07/18(木) NY:AN:NY.AN
>>31
と言っている本人も使っていないくせに。まだpytnonでnumpyとscikits statsmodels & pandasを使う方がまだ実用性がある。
37デフォルトの名無しさん:2013/07/20(土) NY:AN:NY.AN
Pythonにはthink.statsて物もあるからね。
普及はしてナイっぽいが。
38デフォルトの名無しさん:2013/09/19(木) 22:08:26.66
Excelとか信用できない
39デフォルトの名無しさん:2013/11/11(月) 00:53:05.70
タイトルに次からはR言語って入れろや
次スレは5年は後だろうけど
40デフォルトの名無しさん:2013/11/12(火) 13:22:39.61
>>39
RのことをR言語というは2重の意味で反対って、
御大が仰っていたが。
41デフォルトの名無しさん:2013/11/22(金) 19:28:27.39
人いないの?
42デフォルトの名無しさん:2013/11/22(金) 21:38:26.09
>>41
いるけど、何故か質問は数学版の方にしか来ない
43デフォルトの名無しさん:2013/11/23(土) 01:14:47.37
なる
44デフォルトの名無しさん:2013/11/29(金) 09:29:59.88
45デフォルトの名無しさん:2014/02/25(火) 19:38:37.59
↓こんなんあるんだね。なかなか良さそう。

http://www.rstudio.com/
46デフォルトの名無しさん:2014/02/25(火) 22:00:32.70
>>45
ESSを使えよ
47デフォルトの名無しさん:2014/02/26(水) 21:50:31.58
え?
48デフォルトの名無しさん:2014/02/28(金) 05:46:01.14
ESSって何?
49デフォルトの名無しさん:2014/02/28(金) 10:10:53.87
>>48
Emacs Speaks Statistics
世界の主なR開発者とユーザが使っているEmacs用のインターフェイス
昔はRStudioとかなくて、pmgとかRKWardとかはあったけど、
あまり使い物にならなかったので、事実上、ESSしか選択肢がなかった。
だから、Rの古参ヘビーユーザはほとんどESSユーザ。
# Emacsを団塊世代の化石と揶揄するのはなしの方向で
50デフォルトの名無しさん:2014/02/28(金) 13:35:24.88
ESSで、なにげにJuliaも使える
便利
51デフォルトの名無しさん:2014/02/28(金) 14:19:03.56
何故、EmacsはVimより重いのか
52デフォルトの名無しさん:2014/02/28(金) 16:15:38.85
こんなとこでEmacsとVimの論争はやめてよ!
53デフォルトの名無しさん:2014/03/01(土) 19:08:21.35
なにこれ言語?
54デフォルトの名無しさん:2014/03/01(土) 21:46:47.33
Rって汎用言語よりも遥かに短く式書けていいよね
55デフォルトの名無しさん:2014/03/01(土) 23:36:28.98
>>53
行列演算をサポートするスクリプト言語。
おもに統計の手法開発向けに考えられたS言語というのがあって
それの兄弟言語。
無償なんで結構つかっている人は多い。
56デフォルトの名無しさん:2014/03/03(月) 20:39:05.33
gsにならなくて良かったと思う
57デフォルトの名無しさん:2014/03/04(火) 02:50:08.77
確かに
58デフォルトの名無しさん:2014/03/05(水) 13:05:50.24
今、本を読んで、
多くの常識はずれなことに当惑している

ここはプログラム板だから、
プログラムの観点から言わせてもらうと、

まず行ではなく、列方向に、
データがまとめられていることに、
ショックを受けた

次に、C言語の配列がなく、
リストを配列と呼んでいるらしい

もう、ついていけん!これは文系脳?
59デフォルトの名無しさん:2014/03/05(水) 13:59:51.37
論理的に述べよ
60デフォルトの名無しさん:2014/03/05(水) 15:10:50.95
Lisp脳からすると配列とか言われると頭がモヤモヤする。
61デフォルトの名無しさん:2014/03/05(水) 15:12:20.33
>>58
Rの目的は、自分が考えたオレ様統計量やモデルを簡単に実装すること。
既存の言語に過度に振り回されず、簡潔明瞭に統計モデルが記述できればそれでよい。

> 次に、C言語の配列がなく、
> リストを配列と呼んでいるらしい
arrayとlistは別物だけど、そこは理解している?"["関数は理解している?
> a <- array(1:9, dim = c(3, 3))
> a[2, 3]
[1] 8
> b <- list(x = matrix(1:6, 2), y = letters[1:5])
> b
$x
[,1] [,2] [,3]
[1,] 1 3 5
[2,] 2 4 6

$y
[1] "a" "b" "c" "d" "e"

> b[[1]][2, 2]
[1] 4
62デフォルトの名無しさん:2014/03/05(水) 15:19:18.25
あっ、逆か。
Cのリスト構造がRの配列に相当すると主張しているのか?
でも、そうすると余計に意味不明。

データフレームが変数ごとにまとめられているのは、
データベース的観点から言えばあたりまえ。
63デフォルトの名無しさん:2014/03/05(水) 18:13:19.20
もともと、Sの世界でデータフレームというものはなかった。
あくまで手法開発ツールなので、それでよしということだったが
データ処理という観点で必要性が高いため追加された。
ただし、データ管理という点では今だ無いに等しいので、ビジネスで
使うには他ソフトとのコラボレーションがどうしても必要。
64デフォルトの名無しさん:2014/03/05(水) 19:02:19.38
データベース的には行指向のほうが普通じゃない?
最近は列指向DBもあるけど
構造体とかオブジェクトとかとは逆だけどそれはそういうもんだと思うしかないのでは
65デフォルトの名無しさん:2014/03/05(水) 19:55:49.67
>データベース的には行指向のほうが普通じゃない?
実世界のデータ自体がそういう形だからね。
数理系の目的以外で使用するのはちと厳しい。
66デフォルトの名無しさん:2014/03/07(金) 09:46:21.15
>>58
行列データの物理的な格納方式のことを言っているのだったら、
C言語は行列の格納は行指向(row-major)だけど、
Fortranだと列指向(column-major)なので、Rが列指向なのはむしろ自然。
67デフォルトの名無しさん:2014/03/07(金) 09:48:09.85
RDBに慣れた人がKVSに文句言ってるくらい可笑しい話
6858:2014/03/07(金) 18:07:17.21
>次に、C言語の配列がなく、
>リストを配列と呼んでいるらしい
漏れの勘違い

Rのベクトルは、C言語の静的配列で、
同じデータ型の要素が並ぶもの

Rのリストは、C言語の構造体で、
異なるデータ型の要素が並ぶもの

Rのデータフレームは、Rのリストの集積

「アート・オブ・R・プログラミング」を読んでいるが、
オライリーの本は外人なので、
わかりにくいし、疲れる。時間のムダ

アンクの絵本みたいに、
図で表示すればすぐわかるのに
69デフォルトの名無しさん:2014/03/07(金) 22:00:30.36
>>68
文句ばっかりw
しかも間違っているし。
70デフォルトの名無しさん:2014/03/07(金) 23:03:20.28
>>58
数値計算専用のFortranは列指向なわけだが
71デフォルトの名無しさん:2014/03/07(金) 23:04:33.54
68みたいに何の素養もないボケがRを使うような機会ってあるの?
72デフォルトの名無しさん:2014/03/08(土) 01:14:26.20
ひょっとして手当たりしだいに履歴書だせば、Rでデータ解析するような仕事に付けるの?
73デフォルトの名無しさん:2014/03/10(月) 17:40:34.54
>>72
試してみれば?
74デフォルトの名無しさん:2014/06/23(月) 14:42:41.11 ID:0h72bx2B
3相因子分析をRでできると聞いたのですが専用のパッケージがあるのでしょうか?
よろしくお願いいたします。
75デフォルトの名無しさん:2014/06/23(月) 23:56:50.05 ID:8AKvYnoG
76デフォルトの名無しさん:2014/06/25(水) 10:07:33.40 ID:2DQs2BI0
やはりそのようなパッケージはないということでしょうか?
77デフォルトの名無しさん:2014/06/25(水) 12:34:21.85 ID:dEg0ohw8
>>76
Tucker法とかなら、ThreeWayパッケージ
78デフォルトの名無しさん:2014/06/25(水) 12:37:16.63 ID:2DQs2BI0
ご返答ありがとうございます
three Wayパッケージについて調べてみたいと思います。
79デフォルトの名無しさん:2014/06/29(日) 22:51:21.82 ID:oVWMi4Qv
・グラフを重ねて描画
・グラフを並べて描画
この2つの両立は可能でしょうか?

以下の様な流れのコードで、可能かと思ったのですが、
ひとつのグラフエリアに全グラフを出力してしまい、実現できませんでした。
よろしくお願いします。


//描画領域を1行4列に
 jpg('test.jpg')
 par(mfcol=c(1,4))

//4回繰り返す
while(4回繰り返す){ 

 //1つのグラフに、3本の線を描画
  while(3回繰り返す){
   par(new=T)
   hogehoge = 描画したいデータ
   plot(hogehoge,type="l")
  }
}

//画像ファイル出力
dev.off()
80デフォルトの名無しさん:2014/06/30(月) 10:15:13.59 ID:F0ToNnNt
>>79
> ・グラフを重ねて描画
> ・グラフを並べて描画
> この2つの両立は可能でしょうか?

可能と言えば可能。
ただし、1つのグラフに、3本の線≠グラフを重ねること
複数の折れ線グラフを描画するときには、
plot()で軸などを描画した後に、lines()で線を描くのが基本。
matplot()を使うのもあり。

plot(runif(10), runif(10), type = "l")
lines(runif(10), runif(10), lty = 2, col = 2)
lines(runif(10), runif(10), lty = 3, col = 3)

これを1行4列に
op <- par(mfcol=c(1,4))
sapply(1:4, function(i){
hogehoge <- as.data.frame(x = runif(30), y = runif(30))
plot(hogehoge[1:10, ], type = "l")
lines(hogehoge[11:20, ], lty = 2, col = 2)
lines(hogehoge[21:30, ], lty = 3, col = 3)
})
par(op)
みないな感じにする。

なお、// のコメント禁止。代入に=を使うのは禁止。
初心者はpar(new=T)の使用禁止。
while()も真にやむを得ない場合以外は避ける(回数が決まっているループに使うのはもってのほか)。
81デフォルトの名無しさん:2014/07/15(火) 00:50:38.77 ID:wW4cYINX
画像ファイル形式に、表(行列)を出力する方法ってありますか?

無ければデータフレームをwriteでcsvに書き出して、スクショとってペイント切り貼りなので、
できれば避けたいです・・・
82デフォルトの名無しさん:2014/07/15(火) 04:48:30.38 ID:BzYTWLeF
gridExtraパッケージのgrid.table()でいける
83デフォルトの名無しさん:2014/07/15(火) 09:50:16.91 ID:zeQtrZTc
>>82
質問者じゃないけど、参考になった。

複雑な図にたくさんの数字ラベルをつけて、
横に数字とラベル名の対照表を簡単につけられないかと長年考えていたが、
これなら簡単そうだな。

op <- par(mfrow = c(1,2))
x <- data.frame(x = runif(10), y = runif(10))
plot(x, cex=2)
i <- 1:10
text(x, as.character(i))
grid.table(data.frame(Month = month.name[i]))
par(op)

だが、古典グラフィックとGridの共存がうまくいかないw
8483:2014/07/15(火) 10:02:10.30 ID:zeQtrZTc
突っ込まれる前に追記。
もちろん、下記のようにすれば、ある程度実現することは分かっているけど、
ちゃんとレイアウトされた表にすることが難しい
x <- data.frame(x = runif(10), y = runif(10))
plot(x, xlim = c(0, 1.5), cex=2)
i <- 1:10
text(x, as.character(i))
legend("topright", paste(formatC(1:10, width=2),
month.name[i]), title = "Month", bty = "n")
85デフォルトの名無しさん:2014/07/22(火) 23:06:40.83 ID:ygL5Ppst
>>82
ありがとうございます。
無事表示できました

贅沢を言えば、
>>83の方が言うように
既存のplotと共存させてなくなってきました。
ライブラリを読みましたが、既存のplotとの共存はできないのでしょうか

@A

@プロットしたグラフ
Aその値の表
86デフォルトの名無しさん:2014/07/23(水) 14:05:46.44 ID:DL7ooDbK
>>85
古典グラフィックと混載するのではなく、
全てをGrid化して制御すれば、自由自在に描画できると思うよ。
とりあえず、viewport()を勉強してくれ

ちょっと長くなるけど、下記のコードは期待通りになった。
library(gridExtra)
grid.newpage()
pushViewport(viewport(x = 0, width = 0.8, just="left"))
pushViewport(plotViewport())
grid.rect(); grid.xaxis(); grid.yaxis()
x <- runif(10); y <- runif(10)
grid.points(x, y, size = unit(1.5, "char"))
grid.text(as.character(1:10), x = x, y = y)
grid.text("Grid test plot", y = unit(1, "npc") + unit(2, "lines"))
popViewport()
pushViewport(viewport(x = 1.2, width = .2, just = "right"))
grid.table(data.frame(Month = month.name[1:10]))
87デフォルトの名無しさん:2014/08/10(日) 10:38:43.73 ID:frgBbTF3
【動物】外へ出たネコはどこへ行くのか? 1000匹のデータから解明するプロジェクト [8/8]
http://daily.2ch.net/test/read.cgi/newsplus/1407513849/
88デフォルトの名無しさん:2014/08/10(日) 17:44:43.02 ID:2ZseX05a
RのクラスってC言語上でクラスを作るみたいなもんだな
89デフォルトの名無しさん:2014/08/12(火) 16:06:31.87 ID:8jEy2U7J
pygmentsを使ってみたが、

$ pygmentize -N tmp.R
splus
$ pygmentize -N tmp.r
rebol

拡張子が小文字だとREBOLと認識される模様。
90デフォルトの名無しさん:2014/08/13(水) 10:33:15.47 ID:oD1F8/c3
代入にほとんど<-が使われていますが、
=を<-と同じとして使ってよいのでしょうか?
91デフォルトの名無しさん:2014/08/13(水) 10:54:55.70 ID:o5aSPwlN
>>90
だめ。意味が違うし、結果が異なる場合もある。
ベテランでも<-にすべきところで=を使っている人もいるので、
混乱すると思うけど、S言語の仕様に従った方が間違いがない。

<-と=で結果が変わってしまう例:

> (x <- 9:11)
[1] 9 10 11
> mean(x = 1:3); mean(x)
[1] 2
[1] 10
> mean(x <- 1:3); mean(x)
[1] 2
[1] 2
> x
[1] 1 2 3

引数に<-を使うと、mean(x)の値が予期せず変わってしまう。
9,10,11の平均値を2として論文に書いてしまう人はいないだろうが、
複雑な計算だったら、気がつかずにそのまま解析結果にしてしまうかも知れない。
92デフォルトの名無しさん:2014/08/13(水) 23:10:16.62 ID:oD1F8/c3
>>91
ありがとうございました
最近勉強始めたのですが、教えていただけなければ全部=で覚えるところでした
また機会ありましたらよろしくおねがいします
93デフォルトの名無しさん:2014/08/14(木) 23:20:58.24 ID:R0JPen8d
ちょっとお聞きしたいのですが、
x y z f
1 1 1 f1
1 1 2 f2
1 1 3 ・・
1 2 1
1 2 2
1 2 3
1 3 1
1 3 2
・・
のようなデータがあって、
例えばzが1だけのx,y,fだけで3次元サーフェスプロットを書きたいのですが、
Rだとそういったことはもしかしてできたりしますでしょうか?
(可能なら他のz=2,z=3でのサーフェスプロットも同時に表示するなど・・)
突然ですいませんがもしよろしければご教示いただけると幸いです
94デフォルトの名無しさん:2014/08/15(金) 07:01:45.18 ID:fd04cuVy
subsetで抜き出せばいいんじゃないの?
95デフォルトの名無しさん:2014/08/15(金) 07:27:33.42 ID:Evb4CBKF
aggregate
96デフォルトの名無しさん:2014/08/15(金) 10:42:07.27 ID:keCvNQ07
>>93
> dat <- data.frame(expand.grid(1:3, 1:3, 1:2)[,3:1], as.factor(paste0("f",1:18)))
> names(dat) <- c("x", "y", "z", "f")
> dat
x y z f
1 1 1 1 f1
2 1 1 2 f2
3 1 1 3 f3
4 1 2 1 f4
5 1 2 2 f5
6 1 2 3 f6
[中略]
17 2 3 2 f17
18 2 3 3 f18
というデータがあったとして、
> (dat1 <- dat[dat$z == 1, ])
x y z f
1 1 1 1 f1
4 1 2 1 f4
7 1 3 1 f7
10 2 1 1 f10
13 2 2 1 f13
16 2 3 1 f16
とすればzが1だけのデータになる。これを行をx、列をyとしたときのfの行列を作成してpersp()で表示すればよい。
> m <- matrix(NA, nrow = max(dat1$x), ncol = max(dat1$y))
> for(i in 1:nrow(dat1)){m[dat1[i, 1], dat1[i, 2]] <- dat1[i, 4]}
> persp(m)
factor型のfを強制的に整数型にしているけど、適宜、自分の思うとおりにアレンジしてくれ。
97デフォルトの名無しさん
>>94-96
ありがとうございました
特に具体的なやり方まで教えていただき、感謝です
試させていただこうと思います