【R言語】統計解析フリーソフトR 第4章【GNU R】
■ このスレッドは過去ログ倉庫に格納されています
0001132人目の素数さん
2011/01/09(日) 17:31:49統計計算で重宝するデータ型や、複数要素を処理する演算や関数、
解析結果を表示するグラフィックなど、多彩な機能を提供します。
●関連サイト
The R Project
http://www.r-project.org/
RjpWiki
http://www.okada.jp.org/RWiki/
リンク集
http://www.okada.jp.org/RWiki/?%A5%EA%A5%F3%A5%AF%BD%B8
0271132人目の素数さん
2011/12/10(土) 23:48:50.77統計計算のレベルによるだろうけど、本格的に統計処理を入れるなら、
Rを利用した方が楽だろう。PHP-Python-Rという風に使ってもよいのでは。
rpy2とか検索してみて
0272132人目の素数さん
2011/12/11(日) 00:12:09.89返答ありがとうございます
確かに、記述方法がRは非常にシンプルだと本屋で調べてみて思いました
Pythonはまだ学習し始めたところですが、PHP、Cなどで書くととんでもないというのがもの凄く簡単に書かれていて驚きました
ところで、今R言語について調べていたら、対話式がメインとか書かれているようでした
R言語は、他の言語のようにテキストエディタで記述し、自動処理出来るのではないのでしょうか?
PHPなどと違い、ブラウザに表示とか、Linux上でファイルやディレクトリを操作したりとかは無理かもしれませんが、
PHPからRで書かれたファイルを呼び出し処理をし、結果を受け取り・・・といったことをやりたいと思っていたのですが
rpy2を今から検索してみます
0273259
2011/12/12(月) 22:04:22.39個人の環境ではないので簡単には64bitには変えられないのです
>>269
この処理だけではないので一概には言えませんが、一断面10分程度です
環境はcentOS6で xeonE3110です
ありがとうございました
0274132人目の素数さん
2011/12/13(火) 06:18:01.69いまどきは、こんな言語がPythonと呼ばれているのか。
0275132人目の素数さん
2011/12/14(水) 22:48:13.920276132人目の素数さん
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と同じ)を作成したいのですが、
良い方法はありますでしょうか
0277132人目の素数さん
2011/12/19(月) 15:08:40.40R言語って文系学部でも使いますか?
あと、使えると就職や進学に有利でしょうかね?
0278132人目の素数さん
2011/12/19(月) 15:33:46.79文系とは具体的に、どの分野?
経済学や社会学など社会科学分野なら統計解析は必須だろうし、
その他の文系でも、心理学、計算言語学、数理地理学とかデータ処理を扱うなら、
統計解析は必須だろう。統計解析を行うなら、R言語を使うこともあるだろう。
Rを自由自在に使えると就職や進学に有利かと問われれば、多くの場合、否でしょう。
0279132人目の素数さん
2011/12/19(月) 19:22:08.37経済学。
十分条件じゃなくて、必要条件であるみたいですね。
れすトンクス。
0280132人目の素数さん
2011/12/21(水) 02:29:25.07function(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
とでるんですが、どうなおせばよいでしょうか。
0281132人目の素数さん
2011/12/22(木) 22:26:52.11273みたいな使い方はそのコンピュータではアブノーマルなの?
なんでCentOS6なのにまだ32bitなの? 管理者バカなんじゃないの。
今、パソコンが安いから実験機として買ってメモリてんこ盛りにして64bitOSを作ろうって提案したら?
あとせっかくだからマルチブートの仕方を覚えて、32bitと64bitを共存させて、他にもOSを入れられる
ように設定しておけばいい。
ttp://nttxstore.jp/_II_P813280396
0282132人目の素数さん
2011/12/23(金) 09:51:58.81R 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って、どこで落とせますか?
0283132人目の素数さん
2011/12/23(金) 10:18:18.71ttp://cran.r-project.org/src/base/R-2/R-2.14.1.tar.gz
0284132人目の素数さん
2011/12/23(金) 10:26:11.01あー、ソースレベルって事すか。
バイナリリリースはちょっと待てっていうことですかね。
ありがとうございました。
0285132人目の素数さん
2011/12/23(金) 23:31:39.85ginv では?
0286132人目の素数さん
2011/12/25(日) 10:11:34.88http://essrc.hyogo-u.ac.jp/cran/
とかに
Download R 2.14.1 for Windows (45 megabytes, 32/64 bit)
が入りましたよ
0287132人目の素数さん
2011/12/25(日) 16:26:21.07さんくす。めりくり。らいよろ。
0288132人目の素数さん
2011/12/27(火) 02:47:24.36階層型クラスタ分析には、サンプル(ケース)に対してクラスタリングするのか、
変数に対してクラスタリングするのかでわかれるかと思いますが、
Rではサンプルに対してしかクラスタ分析できないのでしょうか?
0289132人目の素数さん
2011/12/30(金) 12:46:23.670290132人目の素数さん
2011/12/30(金) 14:45:51.73r
0291132人目の素数さん
2011/12/30(金) 18:00:57.18垂直線を追加しようとしても上手く入りません。
偉い人、解説をよろしくお願いします。
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日"))
0292291
2011/12/30(金) 18:01:59.90abline(v=as.numeric(strptime("2009年12月21日","%Y年%m月%d日")))
でOKでした。
0293132人目の素数さん
2012/01/01(日) 13:50:09.79rとRの区別もつかんのか
0294132人目の素数さん
2012/01/01(日) 14:22:08.14rもリンクされてなかったっけ?
0295132人目の素数さん
2012/01/01(日) 16:37:59.98rはRとは別のソフト
$ r --version |head -1
r ('littler') version 0.1.5
$ R --version |head -1
R version 2.14.1 (2011-12-22)
0296132人目の素数さん
2012/01/01(日) 23:50:07.450297132人目の素数さん
2012/01/02(月) 01:26:00.73これをややこしいと思う人は、
incase-sensitiveな文化に脳を冒されている人
0298132人目の素数さん
2012/01/04(水) 14:54:08.36Mac 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だな。
0299132人目の素数さん
2012/01/04(水) 16:16:24.48MacPorts版のMacOSX版(ややこしいな)だとどうだろう。
0300132人目の素数さん
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)が取り出せるはず。
0301132人目の素数さん
2012/01/11(水) 01:10:41.37a <- 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]})
0302132人目の素数さん
2012/01/11(水) 01:53:23.83多謝!
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]}))}}
リストのままでも出来てしまいました。すみません。
0303132人目の素数さん
2012/01/15(日) 00:10:57.150304132人目の素数さん
2012/01/15(日) 12:02:12.630305132人目の素数さん
2012/01/15(日) 19:09:49.95まぁ
r-project
r-script
r 統計
このあたりですね
0306132人目の素数さん
2012/01/16(月) 12:50:23.28まぁまずはRSiteSearch()だろ。
そんで、ttp://www.rseek.org/ とか。
最後に>>305の検索語でgoogleを使えばいいんじゃない?
○○を実装したパッケージを探すなら、「cran ○○」で検索する。
0307132人目の素数さん
2012/01/17(火) 00:15:09.670308132人目の素数さん
2012/01/17(火) 12:46:55.11言いたいことは、こういうこと?
正方行列Aが逆行列を持ち、A^{-1} の固有値が m,n なら、
A^{-1/2} = (A^{-1}+ mnI)/(m+n)
違ってたら、ごめん。
0309308
2012/01/17(火) 12:48:44.46A^{-1/2} の固有値が m,n なら、
A^{-1/2} = (A^{-1}+ mnI)/(m+n)
かな。
0310308
2012/01/17(火) 20:39:11.48>>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} としたもの。)
という理解であってるのかな。
0311308
2012/01/17(火) 22:19:59.38R-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
最後のがキッチリ単位行列にならないのは、
丸め誤差の所為だから仕方ないと思われ。
0312308
2012/01/17(火) 22:26:17.13> 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
0313132人目の素数さん
2012/01/18(水) 10:57:06.79> 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
0314308
2012/01/18(水) 12:32:51.26おお、そんな関数があったとは。
0315308
2012/01/18(水) 12:33:01.61おお、そんな関数があったとは。
0316308
2012/01/18(水) 22:59:15.60おお、そんな関数があったとは。
0317308
2012/01/18(水) 22:59:44.42おお、そんな関数があったとは。
0318308
2012/01/18(水) 23:01:26.21おお、そんな関数があったとは。
0319308
2012/01/18(水) 23:08:57.17おお、そんな関数があったとは。
0320308
2012/01/18(水) 23:35:40.76おお、そんな関数があったとは。
0321308
2012/01/19(木) 08:20:42.49おお、そんな関数があったとは。
0322308
2012/01/19(木) 08:22:06.35おお、そんな関数があったとは。
0323308
2012/01/19(木) 08:23:29.36おお、そんな関数があったとは。
0324132人目の素数さん
2012/01/19(木) 08:24:58.31おお、そんな関数があったとは。
0325132人目の素数さん
2012/01/19(木) 08:25:39.88おお、そんな関数があったとは。
0326308
2012/01/19(木) 08:26:49.60おお、そんな関数があったとは。
0327132人目の素数さん
2012/01/19(木) 16:46:26.30おお、そんな関数があったとは。
0328132人目の素数さん
2012/01/19(木) 18:16:15.47おお、そんな関数があったとは。
0329308
2012/01/19(木) 19:21:49.25おお、そんな関数があったとは。
0330132人目の素数さん
2012/01/19(木) 21:24:53.73あと、R sourceとかね。
0331132人目の素数さん
2012/01/19(木) 21:40:30.51おお、そんな関数があったとは。
0332132人目の素数さん
2012/01/19(木) 22:15:43.34おお、そんなsourceがあったとは。
0333132人目の素数さん
2012/01/19(木) 22:16:42.63おお、そんなsourceがあったとは。
0334132人目の素数さん
2012/01/19(木) 22:17:29.69おお、そんなsourceがあったとは。
0335132人目の素数さん
2012/01/19(木) 22:18:01.01おお、そんなsourceがあったとは。
0336132人目の素数さん
2012/01/19(木) 22:18:19.65おお、そんなsourceがあったとは。
0340132人目の素数さん
2012/01/19(木) 23:14:29.360341308
2012/01/20(金) 04:32:17.580342132人目の素数さん
2012/01/20(金) 05:22:51.540343313
2012/01/20(金) 20:36:44.68でも、実際の話、zapsmall()を知らないで、
条件分岐における数値型の同値の比較を
どうやって今まで書いていたのだろうと不思議に思う。
0344132人目の素数さん
2012/01/20(金) 20:42:23.02こいつ自分で質問の意味わかってのかいな?
0345132人目の素数さん
2012/01/20(金) 23:50:31.94他の言語と同じように書いてたよ。
0346132人目の素数さん
2012/01/20(金) 23:57:15.16abs(x-y) < 10^-14 とか
0347132人目の素数さん
2012/01/23(月) 09:35:12.7910*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], ???????)
で,「???????」を指定すればいいと思うのですが,,,,
よろしくお願いします
0348132人目の素数さん
2012/01/23(月) 09:52:39.90> 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
こういうこと?
0349347
2012/01/23(月) 10:02:32.95>348
matrix()を使わなければいけないと悩んでいた私が馬鹿でした。
matrizだと横展開にしかならず苦悩しておりました。
0350348
2012/01/23(月) 12:02:36.25いや、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
0351132人目の素数さん
2012/01/23(月) 13:13:39.14RStudioご利用の方いましたら、ご一報お願いします
0352132人目の素数さん
2012/01/23(月) 13:28:06.82$ 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
問題なし。
0353132人目の素数さん
2012/01/23(月) 18:42:28.25河童さんが、par(mfrow=c(2,1))を使わずに、layout(matrix(1:2, 2))を使う理由って何だろう。
layout()だとなんかいいことがあるのかな?
0354308
2012/01/23(月) 21:15:31.430355132人目の素数さん
2012/01/25(水) 18:23:35.62例えば
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....
としたいのです。
もし可能ならこのような場合,最初の文字列を配列に組み込むべきなのか,文字列として正規表現として処理するべきなのかどちらが好ましいのでしょうか?
よろしくお願いします
0356132人目の素数さん
2012/01/25(水) 19:06:09.47> 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文と条件分岐で処理して、
汎用化すればよいと思う。
0357356
2012/01/25(水) 19:08:12.54> 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"
0358356
2012/01/25(水) 19:36:19.47> 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()部分をもっと効率よくできる気がする。
0359132人目の素数さん
2012/01/26(木) 01:27:31.67{
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))
0360355
2012/01/26(木) 07:03:57.07ご教授ありがとうございます。
配列に組み込んだものをループで処理することしか考えてませんでしたので,
以外な回答です。
プログラムに関しては勉強中なのですがなかなか上手くいかず悩んでおります。
ありがとうございます
0361355
2012/01/26(木) 08:28:33.03これまで統計処理に関してRを利用してきましたが,この度プログラミングもしっかり勉強したいと思うようになりました。
先にも記したようにプログラミングは初学者です。
CやPerlなど多様な言語がありますが,Rの場合どの系統のプログラミング教本で勉強を始めれば良いのでしょうか?
オススメ教科書があればよろしくお願い致します。
0362132人目の素数さん
2012/01/26(木) 10:23:38.00>>356だけど、正統なプログラミングの勉強をしたことがない。
プログラミングの勉強って、語学の勉強と似ていると思う。
一通り、文法を勉強したら、あとはひたすら経験を積むだけ。
人の表現を聞いて、あぁこういう場面ではこういう風に言えばいいのか、
と人まねを積み重ねる。
一通りの文法レベルの話なら、私はまだ未読だけど、
間瀬先生のRプログラミングマニュアルはどうかな。
間瀬先生の本なら、間違いはないと思う。
>>359
おぉ素晴らしい。rle()の存在を失念していました。
0363359
2012/01/26(木) 11:44:04.18Rデータ自由自在(Data Manipulation with R)がおすすめ。
Rプログラミングマニュアル(間瀬)は辞書的な感じ。
Rの基礎とプログラミング技法(石田訳)、プログラミングR(高階)は読み物的な感じ。
レイアウト的に後者の方が読みやすいか。
海外では最近出たThe Art of R Programmingがよいとされている様子。
0364132人目の素数さん
2012/01/27(金) 14:53:34.000365364
2012/01/27(金) 15:34:02.11すみません
0366132人目の素数さん
2012/01/28(土) 12:45:02.86sum(vector.name[p:q])
が一番普通か
0367132人目の素数さん
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
0368132人目の素数さん
2012/01/30(月) 11:00:34.81ぱっと思いつくのは、グリッドを作成して、(x,y,z)の値から、スプラインやkrigingなど
空間平滑法で各グリッド点における値を推定し、それで等値線を描く。
0369名無しさん
2012/01/30(月) 21:51:46.12ID:???krigingでググると
http://web.sfc.keio.ac.jp/~maunz/wiki/index.php?%C2%E807%B2%F3%B1%E9%BD%AC%A5%DE%A5%CB%A5%E5%A5%A2%A5%EB
っていうのが見つかりました。
ちょっとやってみます。どもでした。
0370名無しさん
2012/01/30(月) 23:07:03.68ID:???http://blog.livedoor.jp/dqnplus/archives/1692812.html
自分にはこんなのが精一杯でした...
library(ggplot2)
DF <- data.frame(age=c("10〜20代", "30代","40代","50代"), value=c(97,78,78,94))
ggplot(DF, aes(x=age, y=value, fill = age)) +
geom_bar(width = 1) +
scale_y_continuous(breaks = 0:100) +
coord_polar() +
labs(x = "", y = "") +
opts(legend.position = "none", axis.text.y = theme_blank(),axis.ticks = theme_blank())
■ このスレッドは過去ログ倉庫に格納されています