X



統計解析R たぶんpart3くらい
0002デフォルトの名無しさん
垢版 |
2012/06/22(金) 13:33:48.72
このスレッドは天才チンパンジー「アイちゃん」が
言語訓練のために立てたものです。

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

                  京都大学霊長類研究所
0004デフォルトの名無しさん
垢版 |
2012/06/22(金) 13:38:51.83
数学板にあったけど、あっちはサーバーが飛んじゃったから、こっちに立ててもいいんじゃないかな。
0008uy
垢版 |
2012/06/22(金) 14:55:08.20
Rはゴミカス向けだと断言する

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

お前らのような下級ゴミカスとは格が違う
0011デフォルトの名無しさん
垢版 |
2012/06/22(金) 20:08:15.52
これのクラスとかのオブジェクト指向言語的な機能って
なんか目指すところが普通の言語と違ってる感じだよな
0014デフォルトの名無しさん
垢版 |
2012/06/23(土) 20:38:20.57
>>13
R言語って、統計解析ソフトのマクロ言語みたいなものだから、
一般のプログラミング言語と比較する方が間違っていると思う。
Rの基本関数はCやfortranで書かれたものを呼び出しているに過ぎない。
0017uy
垢版 |
2012/06/24(日) 18:16:28.30
俺はゴミカスだがエリートゴミカスでR
お前らのような下級ゴミカスとは格が違うのでR
0018uy
垢版 |
2012/06/24(日) 18:36:21.91
ゴミ
0020uy
垢版 |
2012/06/24(日) 18:38:38.18
Mのスレならあるぞ
ちなみに俺はMだ
0024デフォルトの名無しさん
垢版 |
2012/06/27(水) 13:16:37.54
ありがとうございます。
maximaも荒らしが凄いのねプログラム板に移動したいですね。
0028デフォルトの名無しさん
垢版 |
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))
}
}
0030デフォルトの名無しさん
垢版 |
2013/06/07(金) 03:19:25.84
馬鹿には無理
0032デフォルトの名無しさん
垢版 |
2013/07/17(水) NY:AN:NY.AN
>>31
>Incanter
知らなかったので調べてみたら、
本当にExcel統計に負けるほどの基本関数しかなさそう。
経済、医学、生態とか分野別になってもいないし、
ベイズ推定とかデジタル地図の空間演算とか何もなさそう。

> RなんかよりもIncanterを使うべき
お薦めの点はどういうところ?
0035デフォルトの名無しさん
垢版 |
2013/07/17(水) NY:AN:NY.ANID:wY2Fpqcr!
groovyからR呼べないの?Javaって機械学習周りのOSSツール沢山あるのに
最近、Apache族がGroovyをデファクトで採用しそうな感あるよね
0036デフォルトの名無しさん
垢版 |
2013/07/18(木) NY:AN:NY.AN
>>31
と言っている本人も使っていないくせに。まだpytnonでnumpyとscikits statsmodels & pandasを使う方がまだ実用性がある。
0041デフォルトの名無しさん
垢版 |
2013/11/22(金) 19:28:27.39
人いないの?
0047デフォルトの名無しさん
垢版 |
2014/02/26(水) 21:50:31.58
え?
0048デフォルトの名無しさん
垢版 |
2014/02/28(金) 05:46:01.14
ESSって何?
0049デフォルトの名無しさん
垢版 |
2014/02/28(金) 10:10:53.87
>>48
Emacs Speaks Statistics
世界の主なR開発者とユーザが使っているEmacs用のインターフェイス
昔はRStudioとかなくて、pmgとかRKWardとかはあったけど、
あまり使い物にならなかったので、事実上、ESSしか選択肢がなかった。
だから、Rの古参ヘビーユーザはほとんどESSユーザ。
# Emacsを団塊世代の化石と揶揄するのはなしの方向で
0050デフォルトの名無しさん
垢版 |
2014/02/28(金) 13:35:24.88
ESSで、なにげにJuliaも使える
便利
0053デフォルトの名無しさん
垢版 |
2014/03/01(土) 19:08:21.35
なにこれ言語?
0055デフォルトの名無しさん
垢版 |
2014/03/01(土) 23:36:28.98
>>53
行列演算をサポートするスクリプト言語。
おもに統計の手法開発向けに考えられたS言語というのがあって
それの兄弟言語。
無償なんで結構つかっている人は多い。
0057デフォルトの名無しさん
垢版 |
2014/03/04(火) 02:50:08.77
確かに
0058デフォルトの名無しさん
垢版 |
2014/03/05(水) 13:05:50.24
今、本を読んで、
多くの常識はずれなことに当惑している

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

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

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

もう、ついていけん!これは文系脳?
0061デフォルトの名無しさん
垢版 |
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
0062デフォルトの名無しさん
垢版 |
2014/03/05(水) 15:19:18.25
あっ、逆か。
Cのリスト構造がRの配列に相当すると主張しているのか?
でも、そうすると余計に意味不明。

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

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

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

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

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

アンクの絵本みたいに、
図で表示すればすぐわかるのに
0070デフォルトの名無しさん
垢版 |
2014/03/07(金) 23:03:20.28
>>58
数値計算専用のFortranは列指向なわけだが
0071デフォルトの名無しさん
垢版 |
2014/03/07(金) 23:04:33.54
68みたいに何の素養もないボケがRを使うような機会ってあるの?
0072デフォルトの名無しさん
垢版 |
2014/03/08(土) 01:14:26.20
ひょっとして手当たりしだいに履歴書だせば、Rでデータ解析するような仕事に付けるの?
0073デフォルトの名無しさん
垢版 |
2014/03/10(月) 17:40:34.54
>>72
試してみれば?
0074デフォルトの名無しさん
垢版 |
2014/06/23(月) 14:42:41.11ID:0h72bx2B
3相因子分析をRでできると聞いたのですが専用のパッケージがあるのでしょうか?
よろしくお願いいたします。
0078デフォルトの名無しさん
垢版 |
2014/06/25(水) 12:37:16.63ID:2DQs2BI0
ご返答ありがとうございます
three Wayパッケージについて調べてみたいと思います。
0079デフォルトの名無しさん
垢版 |
2014/06/29(日) 22:51:21.82ID: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()
0080デフォルトの名無しさん
垢版 |
2014/06/30(月) 10:15:13.59ID: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()も真にやむを得ない場合以外は避ける(回数が決まっているループに使うのはもってのほか)。
0081デフォルトの名無しさん
垢版 |
2014/07/15(火) 00:50:38.77ID:wW4cYINX
画像ファイル形式に、表(行列)を出力する方法ってありますか?

無ければデータフレームをwriteでcsvに書き出して、スクショとってペイント切り貼りなので、
できれば避けたいです・・・
0083デフォルトの名無しさん
垢版 |
2014/07/15(火) 09:50:16.91ID: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
008483
垢版 |
2014/07/15(火) 10:02:10.30ID: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")
0085デフォルトの名無しさん
垢版 |
2014/07/22(火) 23:06:40.83ID:ygL5Ppst
>>82
ありがとうございます。
無事表示できました

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

@A

@プロットしたグラフ
Aその値の表
0086デフォルトの名無しさん
垢版 |
2014/07/23(水) 14:05:46.44ID: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]))
0089デフォルトの名無しさん
垢版 |
2014/08/12(火) 16:06:31.87ID:8jEy2U7J
pygmentsを使ってみたが、

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

拡張子が小文字だとREBOLと認識される模様。
0090デフォルトの名無しさん
垢版 |
2014/08/13(水) 10:33:15.47ID:oD1F8/c3
代入にほとんど<-が使われていますが、
=を<-と同じとして使ってよいのでしょうか?
0091デフォルトの名無しさん
垢版 |
2014/08/13(水) 10:54:55.70ID: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として論文に書いてしまう人はいないだろうが、
複雑な計算だったら、気がつかずにそのまま解析結果にしてしまうかも知れない。
0092デフォルトの名無しさん
垢版 |
2014/08/13(水) 23:10:16.62ID:oD1F8/c3
>>91
ありがとうございました
最近勉強始めたのですが、教えていただけなければ全部=で覚えるところでした
また機会ありましたらよろしくおねがいします
0093デフォルトの名無しさん
垢版 |
2014/08/14(木) 23:20:58.24ID: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でのサーフェスプロットも同時に表示するなど・・)
突然ですいませんがもしよろしければご教示いただけると幸いです
0095デフォルトの名無しさん
垢版 |
2014/08/15(金) 07:27:33.42ID:Evb4CBKF
aggregate
0096デフォルトの名無しさん
垢版 |
2014/08/15(金) 10:42:07.27ID: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を強制的に整数型にしているけど、適宜、自分の思うとおりにアレンジしてくれ。
0097デフォルトの名無しさん
垢版 |
2014/08/16(土) 09:02:48.15ID:qH3oiq6R
>>94-96
ありがとうございました
特に具体的なやり方まで教えていただき、感謝です
試させていただこうと思います
0098東京女子医科大学病院プロポフォール大量投与
垢版 |
2015/06/08(月) 16:27:57.84ID:Fqp3awmG
マスゴミ・売国奴・医療業界が隠そうとする真実---------------------安楽死---------------------奴隷に勝手に死なれては困る

安楽死旅行企画が大人気|竹田恒泰チャンネル

https://www.youtube.com/watch?v=XmP1TRsAe88


武田邦彦:安楽死と大麻、そして売春・・・オランダに学ぶ

https://www.youtube.com/watch?v=nWV8YOY39tw


安楽死党

https://www.youtube.com/watch?v=8nU2UaSlGx0

自殺は後遺症が怖い!だから-----------------------------------安楽死制度-------------------------------------安心して生きるために
0100デフォルトの名無しさん
垢版 |
2015/06/20(土) 23:30:00.14ID:Qr2aZUd+
bash スクリプト内でRのスクリプトを起動して統計処理させてその結果を
1か0かで戻り値($?)として返すにはどうすれば良いでしょうか?
レスを投稿する


ニューススポーツなんでも実況