2ちゃんねる ★スマホ版★ ■掲示板に戻る■ 全部 1- 最新50  

■ このスレッドは過去ログ倉庫に格納されています

【R言語】統計解析フリーソフトR 第4章【GNU R】

1 :132人目の素数さん:2011/01/09(日) 17:31:49
R は統計計算とグラフィックスのための言語・環境です。
統計計算で重宝するデータ型や、複数要素を処理する演算や関数、
解析結果を表示するグラフィックなど、多彩な機能を提供します。

●関連サイト
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

2 :132人目の素数さん:2011/01/09(日) 17:32:13
●過去スレ
= 統計解析フリーソフト R =
http://science4.2ch.net/test/read.cgi/math/1062650510/
http://mimizun.com/log/2ch/math/1062650510/
= 統計解析フリーソフト R 【第2章】 =
http://science6.2ch.net/test/read.cgi/math/1152449095/
http://mimizun.com/log/2ch/math/1152449095/
統計解析フリーソフト R 【第3章】
http://kamome.2ch.net/test/read.cgi/math/1224142396/
http://mimizun.com/log/2ch/math/1224142396/

3 :132人目の素数さん:2011/01/11(火) 10:05:04
schemeのambに相当することはできるのでしょうか

4 :132人目の素数さん:2011/01/11(火) 11:56:09
>>3
RはShemeのような継続がないので全く同じ動作は再現できないと思います。
しかしベクトルの外積を使えば複数のambを組み合わせるのと似た事ができます。

独習 Scheme 三週間 Chapter 14 非決定性 (Schemeのamb)
http://www.sampou.org/scheme/t-y-scheme/t-y-scheme-Z-H-16.html
R言語
http://ja.wikipedia.org/wiki/R%E8%A8%80%E8%AA%9E
ベクトルに関する Tips 大全
http://www.okada.jp.org/RWiki/?%A5%D9%A5%AF%A5%C8%A5%EBTips%C2%E7%C1%B4

5 :132人目の素数さん:2011/01/11(火) 12:29:53
IncanterはClojureベースでR似の統計計算とグラフィックス環境です。
Rを単体で利用している人にはパッケージ不足な代用品にすぎませんが、
JavaアプリにはJVM系言語で書かれたIncanterの方が組み込みやすいです。

Incanter
http://incanter.org/
Data Sorcery with Clojure
http://data-sorcery.org/
naoya_t@Incanter
http://sites.google.com/site/incanterja/

6 :132人目の素数さん:2011/01/12(水) 09:20:46
どうせjavaならKawaで書いてくれればいいのに


7 :132人目の素数さん:2011/01/12(水) 12:40:29
>>6
Incasterのトップページにこういう意味の文が載っています。
「Incanterは動的型付けの関数型言語であるClojureのパワーと、
データアクセスと処理と視覚化のためのJVM上の豊富なライブラリを利用します」
IncasterはSchemeでは成立しないでしょう。

Clojureをつくったわけ by Rich Hickey
http://www.geidai.ac.jp/~marui/clojure/rationale/
>なぜ私は新しいプログラミング言語を書いたのだろうか。
>次のような特徴を持つ言語が見つからなかったから、という理由からだ。
> * 並行処理のために設計された
> * 定評のあるプラットフォームと相性がよい
> * 関数型プログラミングのための
> * Lisp。

> 1.2 関数型プログラミングは良いものだ
>  * Clojureは動的型付けをする関数型言語
>   o すべてのデータ構造がイミュータブルで永続的、再帰をサポート
>   o ヘテロジニアス(異種混合)なコレクション、戻り型
>   o 動的な多態性(ポリモーフィズム)

8 :132人目の素数さん:2011/01/12(水) 12:44:30
×Incaster
○Incanter

9 :132人目の素数さん:2011/01/19(水) 23:45:18
統計解析フリーソフト R 【第3章】
http://kamome.2ch.net/test/read.cgi/math/1224142396/527
> 527 :132人目の素数さん [↓] :2010/02/18(木) 17:43:21
> >>526
> ・スレッドのレス数が10以下
> ・レスが一週間書き込まれていない
> 二つの条件が満たされるとスレッドが沈むので
> そうならないようにしておけば沈まないよ

        ∧∧  ミ _ ドスッ
        (   ,,)┌─┴┴─┐
       /   つ.  保  守 │
     〜′ /´ └─┬┬─┘
      ∪ ∪      ││ _ε3
               ゛゛'゛'゛

10 :132人目の素数さん:2011/01/25(火) 22:44:23
sage

11 :132人目の素数さん:2011/01/26(水) 10:54:15
誰かRでbmpをimagematrixオブジェクトとして読み込む方法知らないか?

12 :132人目の素数さん:2011/01/26(水) 17:48:00
11だけど、EBImage使うことにした。
他にいい方法知ってる人いたらおせえて

13 :132人目の素数さん:2011/01/29(土) 03:04:25
read.matrixでひとつのファイルから複数の行列を読み込んだりすることは可能でしょうか?

初歩的な質問でしたらすいません、教えていただける方宜しくお願いします。

14 :132人目の素数さん:2011/02/06(日) 00:18:48
R初心者なのですが、小数の精度について解説されたサイト等ありませんでしょうか。

15 :132人目の素数さん:2011/02/06(日) 00:40:42
>>14
http://www.amazon.co.jp/dp/4901683500/
この本の14章あたりにあるよ
.Machine に浮動小数点演算関連定数のリストが収められてる


16 :132人目の素数さん:2011/02/13(日) 06:47:34
軸ラベルと凡例が日本語のグラフで、日本語のみに日本語フォントを使用してeps出力する方法をどなたかご存知ないでしょうか?
pdfなら、日本語関連を最後にまとめて、直前にpar(family=Japan1など)でいけるのですが・・・

17 :132人目の素数さん:2011/02/15(火) 22:46:52
質問です。

単回帰についてですが、データフレームの一列目に被説明変数が格納されており、
残りの列に説明変数が格納されています。

各説明変数を用いて単回帰を行いたいのですが、いちいち変数を指定するのが面倒です。
apply関数を利用しようと思ったのですがうまくいきません。

何か良い方法がありますでしょうか?


18 :14:2011/02/16(水) 21:17:20
>>15
規制で遅くなりました。ありがとうございます。

19 :132人目の素数さん:2011/02/18(金) 00:46:45
>>17
データフレームが縦横逆になっているということですか?
それなら関数t()を使えば通常のデーター形式になると思いますが。例えば
#irisデータを表示
iris
#縦と横が逆
t(iris)
#もう一度やると元に戻る
t(t(iris))

20 :132人目の素数さん:2011/02/18(金) 16:26:08
アウトライア分類と変数選択が同時にできる
線形回帰法ないのでしょうか

21 :132人目の素数さん:2011/02/22(火) 14:38:21.11
チルダ記号ってどういう意味なんでしょうか
関数(変数1 〜 変数2)
なんて使い方です

22 :132人目の素数さん:2011/02/25(金) 18:20:32.50
質問します。
glmを使い,説明変数の数を変えて複数のモデルを作りました。
複数モデルの中から最もあてはまりの良いものを知りたいので
AICを比較しようと考えたのですが,AICがInfとなり,表示してくれませんでした。
使っているソフトはRです。
AICが非常に小さいくて(おそらく2以下?)表示されないと考えているのですが,
これでは比較できません。
対処法をご存じの方がいらっしゃいましたら,教えていただきたく存じます。

23 :132人目の素数さん:2011/02/26(土) 08:00:23.96
最近MacにRcmdrをインストールしても文字が汚くならないというとのサイトを見つけたのですが、
ttp://ito-hi.blog.so-net.ne.jp/2011-02-06
「パッケージの依存関係を解決」にチェックしてインストールすると
虹色ぐるぐるでインストールされません

何が問題だと考えられますか?

環境は
iMac
Mac OS X 10.6.6
Intel Core 2 Duo
2.66 GHz

R 2.12.1

24 :132人目の素数さん:2011/02/28(月) 14:43:10.70
よく変数名に
foo.bar
と . でくぎられた名前があるのですが
Rにもc++みたいなclassがあるのでしょうか

25 :132人目の素数さん:2011/03/01(火) 17:49:13.03
>>20
lmをransacで繰り返し呼んだら?

26 :132人目の素数さん:2011/03/02(水) 03:00:19.18
>>23
>何が問題だと考えられますか?

自己解決力もないのにマイナーな環境で動かす冒険心。

27 :132人目の素数さん:2011/03/02(水) 03:29:20.55
>>26
確かにその冒険心は問題だわねw

28 :132人目の素数さん:2011/03/03(木) 17:19:55.02
cranに
RANSAC
ないのは、そのぐらい自分で作れってことなの?

lm繰り返し呼べばいいだけなんだけど

29 :132人目の素数さん:2011/03/06(日) 11:25:08.31
Mac の Carbon Emacs (23.2) で ESS 使い始めたんだけど、
R を呼び出すとメッセージが英語になる。
Terminal.app から R を呼んだ時は日本語表記なんだけど、
ESS 内でも日本語メッセージ使わせるためには何か設定が必要?

30 :132人目の素数さん:2011/03/06(日) 17:28:12.08
環境変数にLANG=Cでも設定してるんだろうか?

31 :29:2011/03/07(月) 10:57:20.97
~/.bash.rc では LANG=ja_JP.UTF-8 にしていて、
init.el では (set-language-environment 'Japanese) になってる。

ためしに、Terminal から明示的に LANG=ja_JP.UTF-8 emacs & で Emacs を
起動するとメッセージが日本語になった。
デフォルトで Emacs が LANG=C で起動されている??

32 :132人目の素数さん:2011/03/08(火) 19:58:24.45
Rそのものの話題ではないけど、
模試の大学合否判定って、A判定が80%以上、E判定が20%未満だな。
97.5%以上とか2.5%以下とかにしないのはなぜなんだろう。

33 :132人目の素数さん:2011/03/08(火) 20:05:19.44
高校生を絶望の谷へ突き落とすような事はしてはいけないのさ。

34 :132人目の素数さん:2011/03/08(火) 20:27:35.03
>>32
受験者数と合格者数を考えてみれば

35 :32:2011/03/08(火) 21:28:41.29
統計解析の本を見ていて、回帰分析と判別分析の違いかなと思えてきた。
p値が5%以下じゃないとモデルとして不適切などという手法ではないのでしょうね。

36 :132人目の素数さん:2011/03/11(金) 11:14:42.55
emacsからR使ってる人が多いんでしょうか?

37 :132人目の素数さん:2011/03/16(水) 18:58:17.39

筑波のCRANは停電というより地震による直接被害で、電気はきていますが、
漏水がひどい建物にあるので念のため落としています。 -- 岡田 2011-03-16 (水) 10:27:28

38 :132人目の素数さん:2011/03/17(木) 18:18:07.47
床がだいぶ乾いたので、筑波CRANミラー復旧させてみました。 -- 岡田 2011-03-17 (木) 13:17:57

39 :132人目の素数さん:2011/03/23(水) 14:38:52.94
Rのリストって
連想リストのことなの?

40 :132人目の素数さん:2011/03/24(木) 18:04:13.33
>>21
?formula

>>22
Infになるなら、そもそもモデルが不適切

>>24
?class

>>31
R環境の中からLANGを変更できるよ

>>36
誰も統計を取っていないが、昔はEmacs以外の選択肢が事実上なかった

>>39
全然違う

全レスって嫌われるのかなぁ


41 :132人目の素数さん:2011/03/24(木) 18:46:14.98
ステキです^^

42 :132人目の素数さん:2011/04/11(月) 08:54:06.06
Rでsuppot vector machineの分類の問題が解きたいので、
kernlab の中の SVM 関数 ksvmを使っているのですが、
例えばkernlab の中spamを分類すると、決定関数にsign関数で
符号化されて「spam」か「nonspam」の2値で結果が出力されます。
これを2値に符号化される前の決定関数で出力する方法はあるのでしょうか。
どなたかご存知の方はいらっしゃるでしょうか。

43 :132人目の素数さん:2011/04/12(火) 16:56:34.83
(祝) RStudio日本語対応!!

今の所特に日本語周りの不具合は無し
というわけで不要になったTinn-Rをアンインスト
NppToRは窓配置フリーが便利なのでとりあえず残しておく

44 :132人目の素数さん:2011/04/12(火) 17:16:53.99
>>43
Windows版ではそうかもしれないが、MacOSXとUbuntuでは
完全に対応していない。

45 :44:2011/04/13(水) 09:55:41.26
すまん。0.92.44から0.93.75に上げたら、
MacOSXで、問題があった日本語変数名も使えるようになった。
> Sys.getlocale()
[1] "C/en_US.UTF-8/C/C/C/C"
こんな感じだけど。

Ubuntu amd64の方も、エディタ部分で日本語が怪しかったけど、
これも直った感じ。



46 :132人目の素数さん:2011/04/13(水) 17:17:16.15
線形回帰で変数選択とロバスト推定の同時が出来る方法ないですか

47 :132人目の素数さん:2011/04/15(金) 20:26:39.00
Rって中身はCなんですか?
遅延評価Cで書くのすごい大変なのに
どうやってるんだろう

48 :132人目の素数さん:2011/04/19(火) 11:28:58.25
>>47
tar tf R-2.13.0.tar.gz | grep -oE '\.[a-z0-9]*$' | sort |uniq -c | sort -gr |head
599 .c
240 .h
194 .po
169 .mo
94 .in
87 .afm
52 .win
50 .save
45 .f
27 .gmo

RjpwikiのQ&A(初心者コース)に書き込んだmichiさんはこっちに来ないのかな。


49 :132人目の素数さん:2011/04/27(水) 15:52:48.74
ttp://cran.r-project.org/bin/linux/ubuntu/
Nattyまだこないね。

50 :132人目の素数さん:2011/04/27(水) 21:40:58.88
言語初心者ですので、教えていただきたいのですが
このソフトpropensity scoreを用いて解析をするときの参考になるサイトや書籍がありましたら教えてください。

51 :132人目の素数さん:2011/04/27(水) 23:20:30.27
>>50
おっ、同業者か。
nonrandomパッケージのVignettesを読まれてはいかが。
また、疫学のSIGのMLもあるので、参加されてはどうか。
ttps://stat.ethz.ch/mailman/listinfo/r-sig-epi

52 :132人目の素数さん:2011/04/28(木) 13:47:23.33
>>51
ありがとございます。
この休みにでもRのインストールからはじめてみます。
スレ違いかもしれませんが、propensity scoreを用いたマッチングでの解析を行うのに適したソフトは何でしょうか?

53 :132人目の素数さん:2011/04/28(木) 13:50:34.33
>>52
nonrandomパッケージのVignettesを読んでからもう一度質問してください。
ttp://cran.r-project.org/web/packages/nonrandom/vignettes/nonrandom.pdf

54 :132人目の素数さん:2011/04/28(木) 17:38:07.68
>>53
ありがとうございます。

55 :132人目の素数さん:2011/04/30(土) 09:11:31.24
nattyきたー
ttp://cran.r-project.org/bin/linux/ubuntu/

56 :132人目の素数さん:2011/04/30(土) 13:11:01.00
>>55
Releaseのファイルサイズが0でまだ使えないね
$ w3m -dump http://cran.r-project.org/bin/linux/ubuntu/natty/ |grep -oE '[a-zA-Z0-9_\.-]*amd64\.deb'
littler_0.1.3-1natty0_amd64.deb
python-rpy_1.0.3-17natty0_amd64.deb
python-rpy_1.0.3-18natty0_amd64.deb
r-base-core-dbg_2.13.0-1natty0_amd64.deb
r-base-core_2.13.0-1natty0_amd64.deb
r-cran-class_7.3-3-1natty0_amd64.deb
r-cran-cluster_1.13.3-1natty0_amd64.deb
r-cran-foreign_0.8.44-1natty0_amd64.deb
r-cran-kernsmooth_2.23-4-1natty0_amd64.deb
r-cran-lattice_0.19-26-1natty0_amd64.deb
r-cran-mass_7.3-11-1natty0_amd64.deb
r-cran-matrix_0.999375-50-1natty0_amd64.deb
r-cran-mgcv_1.7-6-1natty0_amd64.deb
r-cran-nlme_3.1.100-1natty0_amd64.deb
r-cran-nnet_7.3-1-1natty0_amd64.deb
r-cran-rodbc_1.3-2-1natty0_amd64.deb
r-cran-rpart_3.1.50-1natty0_amd64.deb
r-cran-spatial_7.3-2-1natty0_amd64.deb
r-cran-survival_2.36-8-1natty0_amd64.deb
r-mathlib_2.13.0-1natty0_amd64.deb
今あるパッケージはこれだけ。

57 :132人目の素数さん:2011/05/03(火) 20:04:04.55
ニューラルネットのパッケージnnetについて質問させてください。
すでにデータAを学習したネットワークにさらに別のデータBを学習させるにはどうすればいいのでしょうか?先にAとBを結合して読ませるのは時間がかかるために困っています。
他のパッケージなら出来るという情報もお待ちしています。

58 :132人目の素数さん:2011/05/05(木) 21:13:39.01
MySQLからダウンロードしたデータをRで計算して
MySQLに返しつつ、gnuplotで描画しようと思っています

RubyとかからMySQL、R、gnuplotを操作すべきか、
RからMySQLとgnuplotを操作すべきかで迷ってます

みなさんならどんな風にしますか?

59 :132人目の素数さん:2011/05/06(金) 13:30:23.98
>>58
このスレ的には、Rの中からMySQLにアクセスして、
Rで描画する方向が第一選択だよな。

Rのグラフィック能力とgnuplotってほぼ同等と思っていたけど、
Rを使っているのにgnuplotを加えて使うのは理由は?

>>57
反応がないから、Rjpwikiの方に書かれてはいかが。
私はnnetパッケージを使わないので分からない。

60 :57:2011/05/06(金) 22:06:00.16
>>59
そうしてみます。ありがとうございました。

61 :132人目の素数さん:2011/05/06(金) 23:00:08.59
gnuplotの方が慣れているというだけです。
Rで描けるようになればR+MySQLなのでシンプルでいいですね。

ちょっとやってみます。ありがとうございました。

62 :132人目の素数さん:2011/05/09(月) 23:39:55.72
pi<-seq(0,1,0.0001)
y_n<-60
n<-100

posterior<-((pi^y_n)*(1-pi)^(n-y_n))/beta(y_n+1,n-y_n+1)

の95%信頼区間を求めたいんですがその関数がよくわからないです誰かわかる人いらっしゃいますか?

63 :132人目の素数さん:2011/05/10(火) 09:08:37.12
>>62
Bayesian credible intervalは信頼区間じゃないよ


64 :132人目の素数さん:2011/05/10(火) 15:28:06.31
>>63 だね. bayequentistかな

65 :132人目の素数さん:2011/05/14(土) 21:58:27.95
for (i in 1:5) {sprintf("%s", ticker[i,1])}

だと上手く出力されないのはどうしてでしょう?
素人の質問ですみません

66 :132人目の素数さん:2011/05/14(土) 22:42:04.29
>>65
> sprintf("%s", ticker[,1])
> sprintf("%s", ticker[1:5,1])
> as.character(ticker[,1])
> as.character(ticker[1:5,1])

などと1行で書くのがR流じゃないかと。

ループ使った場合でも

> for (i in 1:5) {a[i]<-sprintf("%s", ticker[i,1])}
> a

とやれば配列aが表示される。

67 :132人目の素数さん:2011/05/15(日) 17:30:01.07
>>65
for文の中ではprint()が必要です。
for (i in 1:5) {print(sprintf("%s", ticker[i,1]))}

普通は>>66の言うとおり、
as.character(ticker[1:5,1])だけどね。

68 :132人目の素数さん:2011/05/25(水) 00:02:27.53
データ配列の最初から20個ずつをまとめ、
それぞれの20個のデータの平均値と標準偏差を求めるプログラムstatsample(m,data)を作成する。

プログラムソースが分かる人は教えてください。

69 :132人目の素数さん:2011/05/25(水) 09:29:38.65
>>68
とりあえず、たたき台を示すので、データ数が20で割り切れないをどうするのかを
考えて、その処理を入れて、その他のエラー処理を入れたら完成だと思う。

statsample <- function(x){
n <- length(x)
m <- floor(n/20)
for (i in 0:(m-1)){
print(paste("平均値:",mean(x[(1+i*20):((i+1)*20)]),"標準偏差",sd(x[(1+i*20):((i+1)*20)])))
}
}

> statsample(runif(100))
[1] "平均値: 0.409618140733801 標準偏差 0.284202820077949"
[1] "平均値: 0.449437574110925 標準偏差 0.286492195081962"
[1] "平均値: 0.555866089393385 標準偏差 0.26665116632303"
[1] "平均値: 0.28123870670097 標準偏差 0.226341301484355"
[1] "平均値: 0.503801094950177 標準偏差 0.282596081360767"


70 :132人目の素数さん:2011/05/25(水) 19:42:32.88
>>69
datamatrix<-matrix(data,20,length(data)/20)
apply(datamatrix,2,mean)
apply(datamatrix,2,sd)

とやるのが普通じゃないか。
データ数が20で割り切れない場合のwarningも表示されるし。

71 :132人目の素数さん:2011/05/25(水) 19:45:58.57
農家の果物の良品、不良品の検査や工場での製品の良品、不良品のチェックなどをシュミレーションにより実験する場合を考える。
このシュミレーションを行うために、不良品率x%でn個のサンプルの中に不良品を発生させるプログラムsampling(x,y)を以下の手順で作成する。
(1)不良品の出現確率x/100とする。発生させた一様乱数がx/100より小さければ、不良品(1)、そうでなければ、良品(0)とする。
(2)不良品出現確率x/100とした試行をn回繰り返し、不良品が出現した場合の数を求める。
 その数がsampling(x,n)の出力とする。
以下の手順をプログラムし、関数sampling(x,n)を作る。
誰か教えてください。

72 :132人目の素数さん:2011/05/25(水) 21:51:26.02
#include "/dev/console"

73 :132人目の素数さん:2011/05/26(木) 00:30:46.84


74 :132人目の素数さん:2011/05/26(木) 01:25:55.19
>>69

75 :132人目の素数さん:2011/05/26(木) 09:18:07.75
>>71
宿題?

ヒントだけ
> runif(10) < 5/100
[1] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE TRUE


76 :132人目の素数さん:2011/05/26(木) 22:53:09.94
rbinom(1,n,x/100)

77 :132人目の素数さん:2011/05/31(火) 02:28:47.96
sample関数について、中でどうやってドローしているんだろうと、
見ようとしたら、
.Internal( sample....
となってて、中身が見えません。
他の言語で作成しているのだろうと思いましたけど、
sample関数のソースって、どこにあるんでしょうか?


78 :77:2011/05/31(火) 02:32:14.67
自己解決しました。
CRANからソースを取得しました。


79 :あんでぃは非存在 ◆AdkZFxa49I :2011/06/06(月) 14:26:34.02
あんでぃ

80 :132人目の素数さん:2011/06/07(火) 04:41:09.16
乱数のところ、ソースみてもわからん。


81 :132人目の素数さん:2011/06/07(火) 22:07:44.63
乱数だからな

82 :132人目の素数さん:2011/06/07(火) 22:18:53.87
メルセンヌツイスターとかいうやつか

83 :132人目の素数さん:2011/06/17(金) 13:02:41.63
すいません、初心者です
株価の日次データが数年分あるんですが
グラフのX軸の目盛りを年次にしたい場合はどうすればいいでしょう?

84 :132人目の素数さん:2011/06/17(金) 13:23:39.86
>>83
a <- ts(1:2000,start=c(2011,6),frequency=365)
plot(a)

85 :132人目の素数さん:2011/06/17(金) 13:35:41.47
>>84
早速のレスありがとうございます
株など営業日がある場合どうすればよろしいでしょうか?
祝日や年末年始などありますし

86 :132人目の素数さん:2011/06/17(金) 13:52:29.96
>>85
xtsパッケージのドキュメントを眺めてから再質問してください。
ttp://cran.r-project.org/web/packages/xts/
日本語が必要なら、Rパッケージガイドブック pp.130-137

87 :132人目の素数さん:2011/06/17(金) 13:59:31.54
>>86
ありがとうございます。
パッケージガイドブックを買ってこようと思います。
これとR-tipsで頑張ります

88 :132人目の素数さん:2011/06/23(木) 16:49:30.62
RでVoigt関数(Gauss関数とLorentz関数のconvolution)でフィッティングするには、畳み込み積分を直接書くしかないのでしょうか。

89 :あんでぃはストーカー ◆AdkZFxa49I :2011/06/23(木) 21:21:17.46
あんでぃ

90 :132人目の素数さん:2011/06/24(金) 09:20:34.16
format="%Y/%m"
と書くと
2011/06
と出力されるけど、幅を節約して
11/06
とするにはどうすれば?

91 :132人目の素数さん:2011/06/24(金) 09:22:44.15
あ、ぐぐったら一瞬で判ってしまった
%y だ

92 :132人目の素数さん:2011/06/24(金) 10:43:36.69
>>90,91
そのあたりは共通だから覚えておいて損はないよ。

> format(Sys.Date(),"%Y")
[1] "2011"
> format(Sys.Date(),"%y")
[1] "11"
> format(Sys.Date(),"%EY")
[1] "平成23年"
> format(Sys.Date(),"%Ey")
[1] "23"



93 :132人目の素数さん:2011/06/24(金) 12:32:27.69
おおー
なんでEが平成なんだろう

94 :132人目の素数さん:2011/06/24(金) 13:01:48.18
>>93
マニュアルには、
%E Modifier: use alternative format
と書いてあるよ。つまり日本語ローケルだと、日本語化した形式にするという意味。

>>92を書き込んだ後、MacOSXとWindowsで試してみたが、
どちらも和暦にならなかった。GNUだけかも。ヘルプには環境依存って書いてあるしね。



95 :あんでぃはストーカー ◆AdkZFxa49I :2011/06/24(金) 16:34:26.88
分からない。

あんでぃ

96 :R入門:2011/06/26(日) 00:02:26.05
これまで、Java、Ruby、Scala など使っているものですが、
Rについても勉強したいと思っています。

Rのサイトをみると、結構、「使い方」的なサイトが多く、
汎用言語の視点から書かれた、サイト、本が少ない(?)ような気がします。

たとえば、ほかの言語と比較しながら書かれたような
本、サイトなどあれば、教えていただきたいのですが。
ありますでしょうか。




97 :132人目の素数さん:2011/06/26(日) 00:19:39.46
ぐぐりにくい、というのがRの最大の弱点

98 :132人目の素数さん:2011/06/26(日) 01:03:33.08
>>96
Rの基礎とプログラミング技法
http://www.amazon.co.jp/dp/4431712186
http://d.hatena.ne.jp/sesejun/20090331/p2

Rと他の言語を比較した本は知りませんが、
汎用言語としてのR言語を勉強するならこの本がお勧めです。

99 :132人目の素数さん:2011/06/27(月) 09:37:34.48
>>96
そういえば、Rユーザ会で、韓国から来た演者が汎用言語の視点から、Rの問題点などを
発表していたな。興味がなかったので内容は覚えていない。

汎用言語の視点で書かれた書籍はないと思う。
しいてあげるなら、>>98が薦めるリゲスさんの本しかない。

100 :85:2011/07/04(月) 10:41:00.37
Rパッケージガイドブックを購入
xtsをインストールしたんですが
データフレームをxtsにコンバートできません。
> x.xts<-as.xts(x)
以下にエラー as.POSIXlt.character(x, tz, ...) :
character string is not in a standard unambiguous format

Zooオブジェクトに経由させることもできません
> x.xts<-as.xts(read.zoo(x))
以下にエラー xts(coredata(x), order.by = order.by, frequency = frequency, :
order.by requires an appropriate time-based object

データフレームの中身は
日付 株価
20040101    1500
20040102 1450

といった具合に2列のデータなのですが?


101 :132人目の素数さん:2011/07/04(月) 11:05:02.37
>>100
ここに書くのではなくて、
それを書いた人に凸してみたら?

> library(xts)
要求されたパッケージ zoo をロード中です
> dat <- data.frame(日付=c(20040101,20040102),株価=c(1500,1450))
> dat
日付 株価
1 20040101 1500
2 20040102 1450
> as.xts(dat)
以下にエラー as.POSIXlt.character(x, tz, ...) :
character string is not in a standard unambiguous format
> rownames(dat) <- c("2004-01-01","2004-01-02")
> as.xts(dat)
日付 株価
2004-01-01 20040101 1500
2004-01-02 20040102 1450

まぁ、参考になれば。

102 :132人目の素数さん:2011/07/14(木) 14:34:30.11
Rで複素誤差関数 w(x) = exp(-x^2) erfc(-ix) を使いたいのだけれども、これはどうやって定義すればよいでしょうか。
相補誤差関数 erfc を qnorm 関数から定義すると、 qnorm が実数に対してしか定義されていないためエラーになってしまいます。

103 :132人目の素数さん:2011/07/15(金) 02:10:37.99
>>96
> 汎用言語の視点から書かれた、サイト、本が少ない(?)ような気がします。

Rの本を書いているのは、大学の先生が多いからね。
そして、大学の先生ってのはコンピュータのことや、
プログラミングのことをわかってないから。
Rの使い方だけの説明になってしまうのは
しかたがないと思いますよ。


104 :132人目の素数さん:2011/07/15(金) 11:23:45.87
× 大学の先生
○ 情報科学が専門ではなく疫学やら統計屋が仕事の教員


105 :132人目の素数さん:2011/07/16(土) 00:45:00.68
>>104
○ 大学の先生
X 情報科学が専門ではなく疫学やら統計屋が仕事の教員

特に情報科学の先生や院生などは、知ったかの馬鹿ばっかりです。

国立情報学研究所を見ればよくわかるでしょ?

税金を使ってPCで遊んでるだけ。

全員がコネ採用。


106 :132人目の素数さん:2011/07/16(土) 01:04:55.28
情報研究所て何やってるんだ?
唯のお飾りか?

107 :132人目の素数さん:2011/07/16(土) 16:16:24.06
国立情報学研究所は、仕事したくない院生や教授が
税金を無駄遣いしながら、馬鹿同士楽しく
PCで遊んでいる組織ですね。

どいつもこいつも馬鹿ばっかり。
コネがないと絶対に採用されません。
公募する前から採用者は決まってます。


108 :132人目の素数さん:2011/07/16(土) 16:49:55.56
なんか嫌なことでもあった?

109 :132人目の素数さん:2011/07/16(土) 20:02:28.47
国立情報学研究所

統計数理研究所

この二つは廃止で結構です。税金の無駄です。

110 :132人目の素数さん:2011/07/16(土) 20:09:53.71
疫学や感染症のシミュレーションをやっている連中なんざw
バカばっかりやなw あれで数学やっているつもりのもいるからw
頓珍漢なことばかりを言って来るw

111 :猫は嘘吐き ◆MuKUnGPXAY :2011/07/16(土) 20:20:25.68



112 :132人目の素数さん:2011/07/16(土) 20:58:33.45
というか、研究者というものは情熱と実力が必要だと思う。
しかし、単なる就職先のひとつとなっており、
学歴とコネのみで判断されるから。
実力で研究者になれるところって、少ないと思う。


113 :132人目の素数さん:2011/07/16(土) 21:06:58.59
そこの研究員全員の給料の上限を年収300万ぐらいにすれば他から文句はでないと思うよ。

114 :132人目の素数さん:2011/07/16(土) 21:19:33.03
職を失ったのか?

115 :猫は無職 ◆MuKUnGPXAY :2011/07/17(日) 03:35:47.40
職を失ったんは結構前やがな。




116 :132人目の素数さん:2011/07/17(日) 13:55:02.20
>>113
最近の調査では勤労者の平均年収が
370万円ぐらいらしいんですよ。
ただし最頻値は250万円ぐらいですから、
一部の高給取りが平均を上げていると思います。
また、公務員の平均は500万円ぐらいらしいですが、
公務員だけの平均年収は公表されていません。


研究と称してPCで遊んでいるだけですから、
年収150万円でも十分だと思います。


117 :猫の夢と痴漢の埋葬 ◆MuKUnGPXAY :2011/07/17(日) 14:08:35.01
>>116
『研究と称してPCで遊んでる人』だけをそういう待遇にしたら良いと
思います。但しソレをどうやって判定スルのかは現実には難しく、なの
で『虚偽院生と優秀院生の分離』と同様の困難が伴い兼ねませんね。

では質問ですが、虚偽院生に対してはどういう扱いが宜しいのでしょう
かね? やはり追放ですかね?




118 :132人目の素数さん:2011/07/17(日) 14:12:09.83
国立情報研究所も統計数理研究所も、仕事らしい仕事をしているのはほんの一部なのではないかな?
統計数理研究所では女の子の飲み物調査という論文もあったぞw

119 :132人目の素数さん:2011/07/17(日) 14:24:35.05
>>117
虚偽院生とは、論文を書かない院生のことですか?
全く論文を書く気のない院生は追放でしかたないと思います。

少なくとも論文を何本か書いていて、研究費も助成金も1円も
受け取っておらず、アルバイトをして授業料を納めている奴は、
他の人の研究の邪魔をしないかぎりは、追放でなくて放置でいいと思います。
つまり、まあおれのことですけどね。

追放すべきは高い給料、研究費や助成金をたんまりもらっているのに
結果を出さない馬鹿な奴です。
これは院生だけではなく、助手も助教、準教授、教授も含まれます。
それらは能力と業績だけで判定されるべきだと思います。
その業績というのをどう判定するのかが難しいわけですけどね。


120 :猫の夢と痴漢の埋葬 ◆MuKUnGPXAY :2011/07/17(日) 14:29:59.14
>>119
全くその通りだと思います。私が言う虚偽院生とは:
★★★『基礎体力も無ければ動機も無く、唯大学院に入学してしまったゾンビ』★★★
を指し示す言葉です。ですから恐らくは貴方の事ではないでしょう。放置
されていても自分から何かが出来る人は決してゾンビではアリマセンから。




121 :132人目の素数さん:2011/07/17(日) 14:41:00.64
>全くその通りだと思います。

つまり>>119の発言にまったく同意しているという解釈でよいですか?

122 :猫の夢と痴漢の埋葬 ◆MuKUnGPXAY :2011/07/17(日) 14:42:52.30
>>121
はい。『私は>>119氏の発言に全く同意』です。




123 :132人目の素数さん:2011/07/17(日) 14:51:47.93
やっぱCOLDPLAYいいよねぇ
眼醒めたらゾンビみたいだったが、観てたら生気がもどってきた
この辺のクオリティの高さは邦楽にはない、流石だとおもう。

124 :132人目の素数さん:2011/07/17(日) 23:18:34.72
コネっていうと響きは悪いけど、要するにコミュニティーを広げる努力をしてきたってことじゃない?
周囲と意見交換が出来るということは、非常に大きな能力であり財産だと思うよ

そして研究室への貢献度という点で言えば
論文は書かないけどPCで遊べる程度の実力はあって、周囲と意見交換が出来る奴 > 一人黙々と論文を書く奴
だと自分は思う

125 :132人目の素数さん:2011/07/17(日) 23:41:22.12
なら年収も130万でいいな
月10万でボーナス(一ヶ月)も出て国家的身分は安泰
やりがいなんかまったくないと思うかもしれないが、言うことなしの職場じゃないか

126 :132人目の素数さん:2011/07/17(日) 23:45:41.25
>>116
それこそ、そこのなんとか研究所に問い合わせをして詳細資料(統計データ)請求すればいいんじゃないの?
ただ気になったんだけど、rlang使ってるなら「加重平均」ってなんのことかはしってるよね。

127 :132人目の素数さん:2011/07/18(月) 02:46:14.96
↑馬鹿だ(笑


128 :猫は爺惨状の蚊軍 ◆MuKUnGPXAY :2011/07/18(月) 03:33:15.34
>>124
その考え方は決して認められない。大学は馬鹿がママゴトして遊ぶ場所
では断じてない。当然に:
★★★『黙々と論文を書く奴>論文は書かない奴』★★★
であり、PCで遊ぶかどうかや、周囲と意見交換が出来るかどうかなんて、
そんな事はどうでもヨロシ。

論文を書くかどうかだけが問題である。勘違いも甚だしい。ケシカラン。




129 :132人目の素数さん:2011/07/18(月) 03:34:40.12
>>128
まずお前が実績を出してから批判しような

130 :132人目の素数さん:2011/07/18(月) 04:44:10.88
>>126
「左右非対称分布の平均値は分布を的確に示せない」
のは統計の基本常識です。

集計方法と指標の定義: さまざまな平均値/中央値/最頻値
http://web-tan.forum.impressrd.jp/e/2008/07/11/3428

131 :132人目の素数さん:2011/07/18(月) 05:55:50.19
R使うくらいならmatlab使った方がいいと思う

132 :132人目の素数さん:2011/07/18(月) 06:00:29.17
それはない

133 :132人目の素数さん:2011/07/18(月) 07:56:35.43
猫さんが正論をいっとる

134 :132人目の素数さん:2011/07/18(月) 07:59:15.18
統計なんてやっている奴はバカw

135 :132人目の素数さん:2011/07/18(月) 10:43:44.13
統計は低脳のやる学問もどきである
どこの大学でも統計の先生の論文は下らんものばかり

136 :132人目の素数さん:2011/07/18(月) 10:54:16.08
量産可能で下らなくない論文とは例えばどういうのですか?

137 :132人目の素数さん:2011/07/18(月) 11:20:01.81
統計ですと、同じ様な調査結果を論文として何度も書く事が出来ます。

138 :132人目の素数さん:2011/07/18(月) 11:22:33.75
女子大生の飲み物調査

女子高校生の飲み物調査

女子中学生の飲み物調査

女子小学生の飲み物調査

女子幼稚園生の飲み物調査

20代OLの飲み物調査

30代のOLの飲み物調査

以下、女と男にかえても論文が書けます 統計数理研究所の教授がこうした論文を書いています

139 :132人目の素数さん:2011/07/18(月) 11:24:51.54
かけられた電話に出るまでの時間の統計的調査1 一部上場企業の場合
同上 2 2部上場企業の場合
同上 3 ヘラクレス上場企業の場合
同上 4 町役場の場合

以下 延々と書けます。

140 :132人目の素数さん:2011/07/18(月) 11:30:15.87
今渦中の経済産業省官僚のやることなんかはもっと姑息ですけどねw

141 :132人目の素数さん:2011/07/18(月) 15:21:16.30
グランドカノニカルは糞

142 :132人目の素数さん:2011/07/18(月) 18:25:28.32
等高線の書き方について質問です。
等高線を書きたいのですが、情報量が少ないため、contour関数では書けません。現在与えられているのは、20個の点に対しての座標(x,y,z)です。2次元上の布置まではできているのですが、等高線を用いてz座標を表現することができません。
どの関数を扱えばいいかなど、わかる方がいらっしゃいましたら教えてください。

143 :132人目の素数さん:2011/07/18(月) 18:59:47.11
手で書いたら? 天気図も昔はそうしたよ。

144 :132人目の素数さん:2011/07/18(月) 22:51:46.35
>>142
つか、授業聞いてなかったの?
全部説明したはずだけどね。
geoRで作成しなさいって言ったでしょ?
単位あげないよ!


145 :132人目の素数さん:2011/07/31(日) 19:04:21.64
データフレームの列名に日本語で文字化けして困ってます。


Rコマンダーでcsv経由。
RGUIはMSGhosicに設定。

コマンドでフォント指定以外に
対策あれば教えてください。

146 :132人目の素数さん:2011/08/01(月) 00:30:07.52
>>145
Rというよりそのcsvファイルがくせもの
解決策は2つ。
1. csvの文字コードを文字化けしないものに変更してからRに読み込む
2. Rの中でiconv()で文字コードを変換する
好きな方を選べ

147 :132人目の素数さん:2011/08/01(月) 05:59:12.09
>>146
了解です。

クリップボードを経由してみたら、ますます
酷くなりました。

特に列の変数名がボロボロです。
これはなにゆえでしょうか?

148 :132人目の素数さん:2011/08/01(月) 11:35:11.11
>>147みたいな学生を指導する教員は大変だな。

全く別のアプローチを提示してみます。

> dat <- read.csv(file.choose())
> dat
bake bakeda
1 32 re
2 242 ga

ここで列名が文字化けしていたとします。
本当に化けている状態を示せないので仮に"bake"とか"bakeda"とかにしています。

> names(dat) <- c("日本語","大丈夫")
> dat
日本語 大丈夫
1 32 re
2 242 ga

というようにnames()で、列名を自由に再設定できます。
列名が、文字化けしていて、なおかつ文字コードを変更する能力がないなら、
上記のような方法もあります。

149 :132人目の素数さん:2011/08/08(月) 14:36:57.39
[S]
東大,
弁護士,
Re,

150 :132人目の素数さん:2011/08/08(月) 14:38:15.29
[A]
TS10,SBR,VFK10,TKK,VF1,LCCR,SINX,
VF1M4,VF1L2,VF1H2,EMPC,MPE,
4231,4213,3331,3313,145,53A3,6236,
EMPCB,EMJ,LP,CJ,F4,LC,DNA,RNA,
SINT,JEL,23458,2348,DBT,GMO,
AB,APLWJKSJ,PES,WE,CA,RR,ASL,
EPH,ITU,261036,CBS6,1358,G1,AS3,M5,

151 :132人目の素数さん:2011/08/11(木) 22:25:16.52
質問です。

20個の変数があり、各変数は0 から 0.2 まで 0.05 ずつの値をとることが可能
また、この変数の総和は 1 となる。
この時の組み合わせをすべて求めたいのですが、
どうすれば良いでしょうか?

よろしくお願いいたします

152 :132人目の素数さん:2011/08/12(金) 01:53:48.61
>>151
> seq(from=0,to=0.2,by=0.05)
[1] 0.00 0.05 0.10 0.15 0.20
> factorial(5+20-1)/factorial(20)/factorial(5-1)
[1] 10626
この程度の組み合わせなら全て計算して合計が1のものを選んだ方が早いかも。

153 :152:2011/08/12(金) 02:20:56.85
とりあえず、20変数じゃなくて6変数の場合を提示するのであとは自分で考えて
> n <- seq(from=0,to=0.2,by=0.05)
> m <- expand.grid(n,n,n,n,n,n)
> m.s <- apply(m,1,sum)
> a <- m[m.s==1,]
> head(a)
Var1 Var2 Var3 Var4 Var5 Var6
3125 0.20 0.20 0.20 0.20 0.20 0.00
5625 0.20 0.20 0.20 0.20 0.15 0.05
6125 0.20 0.20 0.20 0.15 0.20 0.05
6225 0.20 0.20 0.15 0.20 0.20 0.05
6245 0.20 0.15 0.20 0.20 0.20 0.05
6249 0.15 0.20 0.20 0.20 0.20 0.05


154 :132人目の素数さん:2011/08/12(金) 03:46:54.73
変数の値を20倍すると、各変数は0〜4までの整数値を取れる、総和は20となる。
パターンは次の108通り。合計が20未満の場合は、足りない数だけ1を加える。変数が20個未満の場合は、足りない分だけ0を加える。
例:432→合計が9なので、1を11個加え、43211111111111、さらに数字の数が14個なので、0を6つ加え、「43211111111111000000」が真のパターン
44444 , 44443 , 444422 , 44442 , 4444 , 444332 , 44433 , 444322 , 44432 ,
4443 , 4442222 , 444222 , 44422 , 4442 , 444 , 443333 , 443332 , 44333 ,
4433222 , 443322 , 44332 , 4433 , 4432222 , 443222 , 44322 , 4432 , 443 ,
44222222 , 4422222 , 442222 , 44222 , 4422 , 442 , 44 , 433333 , 4333322 ,
433332 , 43333 , 4333222 , 433322 , 43332 , 4333 , 43322222 , 4332222 ,
433222 , 43322 , 4332 , 433 , 43222222 , 4322222 , 432222 , 43222 , 4322 ,
432 , 43 , 422222222 , 42222222 , 4222222 , 422222 , 42222 , 4222 ,
422 , 42 , 4 , 3333332 , 333333 , 3333322 , 333332 , 33333 , 33332222 ,
3333222 , 333322 , 33332 , 3333 , 33322222 , 3332222 , 333222 , 33322 ,
3332 , 333 , 332222222 , 33222222 , 3322222 , 332222 , 33222 , 3322 , 332 , 33 ,
322222222 , 32222222 , 3222222 , 322222 , 32222 , 3222 , 322 , 32 , 3 ,
2222222222 , 222222222 , 22222222 , 2222222 , 222222 , 22222 , 2222 , 222 , 22 , 2 ,1
各パターン毎に、変数の名前の入れ替えを考えると、合計35,561,166,195通りあると思われる。

155 :132人目の素数さん:2011/08/16(火) 17:26:31.50
Rのように多機能でクールでフリーの幾何学ソフト無いですか?

156 :132人目の素数さん:2011/08/16(火) 20:01:09.46
統計と幾何学ではだいぶソフトに求めるものが違うと思うけど、とりあえずこれなんかどう?
http://sites.google.com/site/geogebrajp/

157 :132人目の素数さん:2011/08/17(水) 15:07:10.21
以下のような複数の式に対して、どちらの式がより小さなzを与えるかの境界線をx-y平面上に引くためにはどうしたら良いでしょうか。
式は最大で4つほど、xとyに関しては整数を想定しています。

z=ax+by … (i)
z=cx+dy … (ii)

単純に総当りで(x,y)に対して、zを最小化する式を選ぶだけなら適当に関数を作ればいけそうですが(スマートではないですね…)、その境界をどうやったらグラフに引けるかがわかりません。

どなたか教えてくだされば幸いです。
よろしくお願いします。


158 :132人目の素数さん:2011/08/17(水) 18:16:26.16
>>157
>z=ax+by … (i)
>z=cx+dy … (ii)
この式でzが等しくなるax+by=cx+dyを引けばよいです。

>式は最大で4つほど
組み合わせが6組あるから6本引いてください。

>xとyに関しては整数を想定しています。
境界線を引くときは整数という条件を無視し、
グラフを見る時に整数が線のどちら側にあるか判断してください。

159 :132人目の素数さん:2011/09/01(木) 15:41:46.21
R

160 :132人目の素数さん:2011/09/05(月) 16:54:51.22


161 :132人目の素数さん:2011/09/05(月) 17:18:37.28
matlab使い慣れてる人向けの
R入門書ってないでしょうか

162 :132人目の素数さん:2011/09/05(月) 20:58:24.38
Ramsay, J.O., Hooker, Giles, Graves, Spencer (2010) Functional Data Analysis with R and MATLAB
(Use R) Springer-Verlag
Jan Graffelman (2010) Multivariate Analysis With Matlab And R CRC Press Online

163 :132人目の素数さん:2011/10/02(日) 01:52:40.21
基本的なことで申し訳ありません。
ワークスペースを保存しようとすると1kbのファイルしか保存されず、保存に失敗します。
原因がわかればよろしくお願いします。


164 :163:2011/10/02(日) 02:08:38.40
すいません。圧縮されているんですね。
スレ汚しすいません。

165 :132人目の素数さん:2011/10/04(火) 02:54:00.77
g <- function(x) x^2
plot(g)

こんな感じで半径1の円を描きたいのです。
教えてください。

166 :132人目の素数さん:2011/10/04(火) 09:53:36.95
>>165
symbols(0,0,circles=1,inches=FALSE)
お望みはこんな感じ?

167 :132人目の素数さん:2011/10/04(火) 11:45:17.26
>>166 ありがとうございます。

symbols(0,0,circles=1,inches=F, xlim=c(0,2), ylim=c(0,2))

図示されたイメージの縦横比(大きさ)を変えると
円の大きさも変化してしまうのですが…

できれば、sqrt(x^2+y^2)の式を用いて描きたいです

168 :152:2011/10/04(火) 12:39:57.11
>>167
>sqrt(x^2+y^2)の式を用いて描きたい
じゃあそうすればいいじゃん。なぜためらう?
> x <- seq(-1,1,length.out=100)
> y <- sqrt(1^2-x^2)
> plot(x,y,type="l")
これで半円だろ。
> plot(c(x,x),c(y,-y),type="l")
これで円になるだろ。


169 :132人目の素数さん:2011/10/04(火) 12:40:50.47
152ってなんだ、166の間違い

170 :132人目の素数さん:2011/10/04(火) 12:49:40.40
>>168 ありがとうございます。勉強になりました。

171 :132人目の素数さん:2011/10/04(火) 12:54:05.14
>>170
念のために、ちょっと改良
> plot(c(x,rev(x)),c(y,-y),type="l")

用途によるけど、円を描画したければ、symbolsを使った方が、
アスペクト比に影響されずに正円になるのでよいと思うが。
xy座標で円を描くと、asp=1にでもしない限り、普通は楕円になってしまう。

172 :132人目の素数さん:2011/10/12(水) 10:45:20.34
パッケージurcaのur.dfでlags=10, selectlags=c("AIC")
のようにAICやBICを使うと、
selectlagsをFixedしてラグを変えて一通り試しても
AICやBICを用いた計算に一致する結果がない、
自分で計算したBICとでは選択されたラグが一致しないなど
どこか間違っている気がします。
ソースを見ても
critRes <-AIC(result, k = switch(selectlags, AIC = 2, BIC = log(length(z.diff))))
lags <- which.min(critRes)
となっていて、当方の利用の仕方に間違いがあるのかどうかも分かりません。
どなたか、この点についてご教示いただければと思います。

173 :132人目の素数さん:2011/10/23(日) 19:16:11.40
確率の推定を行いたい
ロジスティック回帰のような、説明変数に対して単調増加する線形じゃなくて
多分ガウス曲線みたいな感じになると思うのだけれども
なんか適当なパッケージないですかね?

174 :132人目の素数さん:2011/10/24(月) 21:24:37.50
質問です。

都道府県 学年 テスト点数
京都 1 85
大阪 2 90
京都 3 70
奈良 2 60
東京 _3 90
・・・

というようなデータフレームDFが存在します。

これを各都道府県別に学年毎のテストの平均点を算出したいのですが、
どうすれば良いのでしょうか?

最初に都道府県別にデータフレームを分割すれば
tapply関数などで集約できるのですが、いかんせんfor loopで回すので
時間がかかります。ループを利用しないような簡単な計算方法はないでしょうか?

府県名 <- sort(unique(DF[,1]))
for ( i in 府県名 ){

}

175 :174:2011/10/24(月) 21:27:18.06
すいません。
途中で送信してしまいました。

現在は

府県名 <- sort(unique(DF[,1]))
for ( i in 府県名 ){
   temp <- sub(DF, DF$府県名==i)
 result <- tapply(temp, temp$テスト点数, mean)
}

のようにしてますがいかんせんループで時間がかかります。
よろしくお願いいたします。

176 :132人目の素数さん:2011/10/24(月) 22:11:15.94
R言語は知らないのですが、考え方だけ。
整数型配列を二つ用意します。大きさは両方とも6*47=282です。
名前はsum、counter。最初は全て0を入れておきます。
配列の1番目は、北海道の1年に対応させ、2番目は青森の1年...47番は沖縄の一年。
48番は北海道の2年...282番目は沖縄の6年。
あるいは、1番は北海道の1年、2番は北海道の2年、...、6番は北海道の6年、...
277番が沖縄の1年、...282番は沖縄の6年。
どちらでもかまいません。
一人目のデータを読み込み、京都1年に対応するデータのsumを点数の分だけ増やし、counterは1増やす。
これを全データで行います。一度スキャンするだけです。
この目的には、ソートは必要ありません。

177 :174:2011/10/24(月) 22:25:22.55
>>176
ありがとうございます。
Cならそれで十分なのですが、Rの場合ベクトルで扱うのでループ処理は遅くなるらしいのです。

もう一点質問です。

CODE CD VAL
0001 101 3
0001 201 4
0001 333 5
0002 201 2
0002 333 7
・・・

というデータフレームがある場合に
CODE VAL[101] VAL[102] ........ VAL[201] .............
0001 3 0 ........ 4 ...............

というようなデータフレームに変換するにはどうすればよいでしょうか。
これも現在はループを利用して処理をしております

よろしくお願いいたします。


178 :132人目の素数さん:2011/10/24(月) 22:51:31.71
データフレーム名をDFとして、中身が
pref grade score
kyoto 1
kyoto 1 85
oosaka 2 90
kyoto 3 70
nara 2 60
tokyo _3 90
・・・
として、
tapply(DF$score, list(grade=DF$grade, pref=DF$pref), mean, na.rm=TRUE)
みたいのではいかんのですか?
いや、私もよくわからんので、Rコマンダーにお伺いをたててみたんですがね。

179 :132人目の素数さん:2011/10/25(火) 02:06:48.72
>>178
ヘルプを見るとインデックスはlist of factorS とあるから、複数のベクトルをいれれるんだね。勉強になりました。

tapply(X, INDEX, FUN = NULL, ..., simplify = TRUE)
Arguments

X
an atomic object, typically a vector.

INDEX
list of factors, each of same length as X. The elements are coerced to factors by as.factor.



180 :132人目の素数さん:2011/10/25(火) 02:12:24.16
>>177
http://cran.r-project.org/web/packages/HSAUR2/vignettes/Ch_analysing_longitudinal_dataI.pdf
の三ページのreshape()かな

181 :132人目の素数さん:2011/10/25(火) 02:20:33.81
>>177

>CODE CD VAL
>0001 101 3
>0001 201 4
>0001 333 5
>0002 201 2
>0002 333 7
>・・・

>というデータフレームがある場合に
>CODE VAL[101] VAL[102] ........ VAL[201] .............
>0001 3 0 ........ 4 ...............

reshape(data, idvar="CODE", v.name="VAL", time="CD")

でどうでしょう。

182 :132人目の素数さん:2011/10/25(火) 02:28:43.43
>>181

reshape(data, idvar="CODE", v.name="VAL", timevar="CD", direction="wide")

でした。

183 :132人目の素数さん:2011/10/25(火) 09:18:31.89
サポートベクターマシンにて入力変数が多く、
精度を上げるための特徴選択を行おうと思い、
そのためのパッケージとして、"penalizedSVM"が
あると知りました(元々BioInformatics用みたいですが)。

http://r.789695.n4.nabble.com/Stepwise-SVM-Variable-selection-td3178718.html
http://cran.r-project.org/web/packages/penalizedSVM/index.html

しかし日本語の解説やリファレンスが皆無で、
英語でも分かりやすい解説がなく、
パッケージの公式リファレンスでは自分にはイミフでした。
http://cran.r-project.org/web/packages/penalizedSVM/penalizedSVM.pdf

どなたか実際にお使いの方がいれば、具体的に
どのように使用するか教えていただけないでしょうか。

184 :17:2011/10/25(火) 22:44:03.74
皆様ありがとうございました。
2つとも無事うまく解決できました。
やっぱりよくヘルプを読む必要がありますね。
精進します。

185 :132人目の素数さん:2011/10/26(水) 00:50:54.90
>>174の例で、各都道府県別+学年毎に分けたグループそれぞれについて
1対1の全組み合わせのt.testを一気に行う方法があるでしょうか?
(loopで回す関数を自作したりしない出来合の方法で)


186 :132人目の素数さん:2011/10/26(水) 07:28:10.01
>>185
それは、R以前の問題として、不適切だと思うのですが。
あるいは駄目な例としてやるってことかな?
二元配置の分散分析か、何らかの多重比較ではだめなんでしょうか?

187 :132人目の素数さん:2011/10/31(月) 21:41:20.58
CODE_1 CODE_2 VAL1 VAL2 VAL3 VAL4
______________________
AAAAA 122 NA 2.5 3.8 NA
AAAAA 154 2.4 1 4 5
AAAAA 166 3.4 4.0 4 5
AAAAA 178 NA 33 NA NA


BBBBB 122 4 3.4 4.3 1
BBBBB 123 NA 2 4 4
BBBBB 154 2 5 5 6



というようなデータをもつデータフレーム
これをCODE_2毎に相関を算出したいと考えております。

現在は
allcode <- sort(unique(DF$CODE_2))
for ( c_code in 1:length(allcode)) {
TEMPDF <- subset(DF, DF$CODE_2==allcode[c_code])
cor(TEMPDF[, -1][, -1], use = "pairwise.complete.obs")
・・・
}
でおこなっているのですが、いかんせんCODE_2の数が多く、
ループ数が非常におおくなります。

解決策などありますでしょうか?
よろしくお願いします

188 :132人目の素数さん:2011/11/01(火) 08:20:00.30
>>187
code_2を因子化、tapply cor


189 :132人目の素数さん:2011/11/01(火) 10:39:24.41
by(DF[3:5], DF$CODE_2, cor)
でいいんじゃないの?

190 :132人目の素数さん:2011/11/01(火) 11:23:41.66
>>189
>>187じゃないけど、by()ってこんなに便利だったのか。
> V=c(NA,round(runif(10)*10,1))
> dat <- data.frame(C1=sample(LETTERS,50,replace=TRUE),
+ C2=sample(100:105,50,replace=TRUE),
+ V1=sample(V,50,replace=TRUE),
+ V2=sample(V,50,replace=TRUE),
+ V3=sample(V,50,replace=TRUE),
+ V4=sample(V,50,replace=TRUE))
> by(dat[,3:6],dat$C2,cor)
dat$C2: 100
V1 V2 V3 V4
V1 1 NA NA NA
V2 NA 1 NA NA
V3 NA NA 1 NA
V4 NA NA NA 1
------------------------------------------------------------
dat$C2: 101
V1 V2 V3 V4
V1 1 NA NA NA
V2 NA 1 NA NA
V3 NA NA 1.0000000 -0.4458286
V4 NA NA -0.4458286 1.0000000
------------------------------------------------------------
dat$C2: 102
V1 V2 V3 V4
V1 1.0000000 NA 0.1731169 NA
V2 NA 1 NA NA
V3 0.1731169 NA 1.0000000 NA
V4 NA NA NA 1
[以下略]

191 :132人目の素数さん:2011/11/01(火) 11:47:20.47
http://beebee2see.appspot.com/i/azuYwLSFBQw.jpg
すまんこれ教えてくれ


192 :132人目の素数さん:2011/11/01(火) 12:23:35.93
>>191
見れねーよ

193 :132人目の素数さん:2011/11/01(火) 12:26:19.61
diagを使わずにforで対角行列作れって言われた
九行九列で

194 :132人目の素数さん:2011/11/01(火) 13:07:16.47
>>193
宿題は自分でやれ。
無意味な課題であることには同情するが。

195 :132人目の素数さん:2011/11/01(火) 13:36:14.59
ヒントだけ
> x <- array(0, c(9, 9))
> x[1 + 0:(9 - 1) * (9 + 1)] <- c("九","行","九","列","の","対","角","行","列")
> x
[,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9]
[1,] "九" "0" "0" "0" "0" "0" "0" "0" "0"
[2,] "0" "行" "0" "0" "0" "0" "0" "0" "0"
[3,] "0" "0" "九" "0" "0" "0" "0" "0" "0"
[4,] "0" "0" "0" "列" "0" "0" "0" "0" "0"
[5,] "0" "0" "0" "0" "の" "0" "0" "0" "0"
[6,] "0" "0" "0" "0" "0" "対" "0" "0" "0"
[7,] "0" "0" "0" "0" "0" "0" "角" "0" "0"
[8,] "0" "0" "0" "0" "0" "0" "0" "行" "0"
[9,] "0" "0" "0" "0" "0" "0" "0" "0" "列"
2行目をfor文に書き換えればOK

196 :132人目の素数さん:2011/11/01(火) 21:38:31.87
パズルとしてdiag、for以外の方法でやってみた

n=9;matrix(rep(rep(c(1,0),c(1,n)),n),n,n)

197 :132人目の素数さん:2011/11/01(火) 22:18:26.30
>>196
それは多分、定石に近いやり方だと思う。

APLでは同じロジックで以下のように書く。

n nρ1,(n←9)ρ0

198 :132人目の素数さん:2011/11/02(水) 01:29:13.55
一直線に並べた時のパターンを作っているのか
かしこいな

199 :132人目の素数さん:2011/11/02(水) 10:30:18.51
>>196
rep()の回数にベクトルを指定できるとは知らなかった。
昔からだったっけ?repのexample()を見たら、listのrepとかがある。
もはや何でも有りだなw

200 :132人目の素数さん:2011/11/02(水) 15:09:25.23
Rでも>197のAPL版みたいにできるんだなあ。warningはでるけど。
> n=3;matrix(c(1,rep(0,n)),n,n)
[,1] [,2] [,3]
[1,] 1 0 0
[2,] 0 1 0
[3,] 0 0 1
Warning message:
In matrix(c(1, rep(0, n)), n, n) :
データ長 [4] が行数 [3] を整数で割った、もしくは掛けた値ではありません

201 :132人目の素数さん:2011/11/02(水) 18:35:46.71
rep(0,n)じゃなくて rep(0,n-1)ではなくて?

202 :132人目の素数さん:2011/11/02(水) 20:41:59.14
>>200
そこでWarning出るところにRの設計思想があるのかも。

Rの源流に触れるつもりでAPLの教科書を読んだんだけど、
初っぱなのサンプルでこんな事やっているから

(( ̄1+ρc),27)ρc←'APL IS HAPPY '

APL IS HAPPY APL IS HAPPY A
PL IS HAPPY APL IS HAPPY AP
L IS HAPPY APL IS HAPPY APL
IS HAPPY APL IS HAPPY APL
IS HAPPY APL IS HAPPY APL I
S HAPPY APL IS HAPPY APL IS
HAPPY APL IS HAPPY APL IS
HAPPY APL IS HAPPY APL IS H
APPY APL IS HAPPY APL IS HA
PPY APL IS HAPPY APL IS HAP
PY APL IS HAPPY APL IS HAPP
Y APL IS HAPPY APL IS HAPPY

203 :132人目の素数さん:2011/11/02(水) 20:45:02.50
>>202
> (( ̄1+ρc),27)ρc←'APL IS HAPPY '

こっちが本来だった。

(12,1+2×ρc)ρc←'APL IS HAPPY '

204 :132人目の素数さん:2011/11/03(木) 02:20:32.86
Rでガンマ分布の最尤推定量求めたいんだけどどうすればいいんでしょうか



205 :187:2011/11/03(木) 09:38:31.29
>>188,189
遅くなって申し訳ありませんがありがとうございました。
byを使ってかなり高速化することができました。

ところでbyを使って取得すると

$AAAAA
VAL1 VAL2 VAL3 VAL4
VAL1 1.000 xxxx yyyy zzzzz
VAL2 ....

となりますがすべてのCODE2についてVAL1とVAL2~VAL4の相関のみを取り出すには
どうすればよいでしょうか?
byの返り値をresultとすると
for (i in 1:length(names(result))
result[[i]][ , 2:4]
}

とループを回すしかありませんか?
よろしくお願いします



206 :132人目の素数さん:2011/11/03(木) 10:38:07.92
>>205
どんだけforが好きなんだよw
forの方がむしろ思いつかんわ

207 :132人目の素数さん:2011/11/03(木) 16:14:38.08
ああいえば for you
forever are you

208 :132人目の素数さん:2011/11/04(金) 00:56:32.12
>>205

result[[1:n]][ , 2:4]

ってやったらどうなりますか?


209 :187:2011/11/04(金) 23:43:30.93
>>208
次元が違うと怒られます。。。。

210 :132人目の素数さん:2011/11/06(日) 16:00:11.33
基礎的な質問で申し訳ないのですが
膨大なデータから、-1と1を判別して予測する集団学習で
ランダムフォレスト、バギング、ブースティング、SVMの他に有用そうなものってありますか?

ググっても上の4つくらいしか出ないのですが十分ですかね。

211 :132人目の素数さん:2011/11/06(日) 22:20:02.20
エクセルやNumbersに比べてRって見た目しょぼすぎだなwww味気なさ過ぎ
もうちょっとグラフィックとかマシなのある?Mac使いとしはやっぱ見た目は重要。


212 :132人目の素数さん:2011/11/07(月) 00:01:59.45
>>211
Rはオブジェクト指向言語、BASIC、C、C++と比べて遥かに使いやすいし現実的な数値計算で使える。

#Excelと比較してC言語は地味でしょぼい
と嘆かれても困ったもんだ。RはExcelやNumbersとは用途が違う。

但し、重複する所もある。
具体的にはExcelのオプションの分析機能はRの機能と重なる。
使い分けが必要なんだな。

213 :132人目の素数さん:2011/11/07(月) 00:06:22.28
>>211
え?マジで言ってるとしたら勉強不足としか思えないのだが・・・
フォントを代えるなり、latticeやggplot2等のパッケージを試してみるといいよ
参照:ttp://rgm2.lab.nig.ac.jp/RGM2/

これは蛇足だが、学術ソフトの画像出力として「味気ない」というのは明らかに利点
大事なのは見易さと正確性であって、派手なグラフが良いとか考えていると周りから痛い子扱いされるよ

214 :213:2011/11/07(月) 00:08:09.72
あぁ、アプリ画面等がしょぼいって事でしたら、>>212さんの意見を参考にして下さい

215 :132人目の素数さん:2011/11/07(月) 00:25:08.30
俺のお薦めはR Commanderかな。これはRをGUIで使えるようにしたものなの

http://cwoweb2.bai.ne.jp/~jgb11101/files/R-commander.pdf

優れている点はR Commanderのメニューが
データ、統計量、グラフ、モデル、分布
に分かれているのだけれど、これって数学的な"分析"の手順に沿ったメニュー構成になっている事に気が付く。

ディープな分析をしたい時はRを使うし、事務的な作業をしたい場合はExcelを使う。
世の中の大半はExcelで十分だと思う。Rを使いこなせる人たちは高級な。

216 :132人目の素数さん:2011/11/07(月) 02:59:23.82
>>213
実にしょぼい

217 :132人目の素数さん:2011/11/07(月) 03:00:31.75
やっぱ派手さも大切だわ

218 :132人目の素数さん:2011/11/07(月) 07:58:28.74
分析する前が膨大な量のデータで、分析後も派手なグラフの結果では本質が掴めているとは言えないし読む人間も判断できない。
それでは分析する価値は無い。
例えば、ロジスティック回帰分析の場合、入力は膨大でもアウトプットはyesかno程度だよ。

まあ、派手なグラフィックパッケージを探したら?あるんじゃないの?

219 :132人目の素数さん:2011/11/07(月) 10:47:44.35
>>218
趣旨には賛同する。

> ロジスティック回帰分析の場合、入力は膨大でもアウトプットはyesかno程度
おーい。凡ミスか本気でそう思っているのかどっちだ?

220 :132人目の素数さん:2011/11/07(月) 12:18:25.23
>>218
なぜ結果がグラフィカルというだけで本質が掴めてるとは言えないの?
結果は変わらないだろうにww
あなた自身が本質を掴めてないのではww

221 :132人目の素数さん:2011/11/07(月) 14:01:31.17
>>220
横から参戦させてもらうが、そもそもデータ分析の目的は、
データに含まれる枝葉末節を取り除き、データの中に隠れている本質を洗い出すことにある。
苦労して洗い出した本質にまた余計なものを加えて汚すのはこれ如何に?

222 :132人目の素数さん:2011/11/07(月) 16:20:49.99
どなたかパッケージのtuneRに詳しい人いないですか?

223 :132人目の素数さん:2011/11/07(月) 18:42:59.29
>>222
リゲス先生が詳しいと思うよw

224 :218:2011/11/07(月) 23:07:11.83
>>219
"yesかno程度"の"程度"にいろんな意味がこめられているから大目に見てよ(^_^)。


225 :187:2011/11/07(月) 23:10:40.47
とりあえずunlistでベクトルに分解してから、
必要な要素だけを取り出すようにしました。
ループをまわさないのでだいぶ高速化されました。
ありがとうございまいた。

226 :218:2011/11/07(月) 23:13:34.77
>>220
>なぜ結果がグラフィカルというだけで本質が掴めてるとは言えないの?
誤解があったようですまない。
別に可視化(グラフィカル)の研究分野を否定しているわけではないよ。

人間の目で見て確認するのは結構有効なんだよね。
一例を探してみました。
次のURLの画像を見てもらいたいのだけれど

http://www-kairo.csce.kyushu-u.ac.jp/~norikazu/svm.png

左側の2次元平面上の青と赤の点を"シンプルな人工知能"で判別する事はできないんだ。
ところがSVM(サポートベクターマシン)と呼ばれる人工知能を用いるとこれを右側の3次元の問題に置き換える事で判別できるようにするんだ。

こういう判別ができているのか?出来ていないのか?は人間の目で判断して使い分けた方が良い場合がある。
だから可視化は一つの研究分野として重視されているんだ。

227 :218:2011/11/07(月) 23:20:49.19
但しグラフィカルには限度がある。
>>221 さんの主張にあるようにR使いの人たちは大体、数百次元のデータから4次元や5次元位に絞り込む。
でもグラフィカルの世界では基本的に3次元(z軸,y軸,z軸)が限界なんだよね。
4次元以上は色や形に置き換えて可視化する事になる。そうなると実は分かりにくいんだよ。

先のURLの人工知能の例でも所詮2次元から3次元へ問題を置き換えているに過ぎない。
分析の世界をまじめに可視化するとかなりハードルが高くなるんだよね。
勿論、高次元を可視化する手法としてSOMという方法も存在するよ。

228 :132人目の素数さん:2011/11/08(火) 09:30:33.83
面白い話が聞けた

229 :132人目の素数さん:2011/11/08(火) 09:45:20.37
>>218の豹変ぶりに笑った
データの可視化の話と、派手なグラフィックで装飾する話は別の話だと思うが。

230 :218:2011/11/08(火) 22:42:06.35
>>229
ああ、そうなのか。まじめに答えちまったい(^_^)。

でもn次元を2次元に強引にマッピングして可視化するSOMって人間が感覚的にデータの善し悪しを判断する時に結構使えると思うんだよね。
まあ、いいや。

231 :132人目の素数さん:2011/11/09(水) 09:17:28.99
結局さ、本質を取り出すことに意義を感じる研究者と、
データで相手を説得することに意義を感じるビジネスマンは、
相容れないと思うんだ。円グラフを立体化して一部を切り出したり、
棒グラフを無意味に立体化したり、グラデーションで彩色したりというのは、
ビジネスマンに必要かも知れないけど、研究者には必要がない。

232 :132人目の素数さん: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人目の素数さん:2011/11/10(木) 15:56:58.04
>>232
直にMySQLならデータベースに直にSQLアクセスするパッケージを使う必要があるのでは?RODBCだっけ?

テキストに書き出して読み込むなら、read.tableがつかえると思けど時間が混じると読み込んでから変換が必要だと思う。

いずれも、Rデータ自由自在に書いてあると思う




234 :132人目の素数さん: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人目の素数さん:2011/11/15(火) 11:16:21.60
↑の回答わかる方お願いします。

236 :132人目の素数さん:2011/11/15(火) 14:26:46.90
>>234
また宿題か。
まさか試験中に書き込んでる?

237 :132人目の素数さん: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人目の素数さん: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人目の素数さん:2011/11/17(木) 09:59:23.86
R初心者として質問です。

Rを外部プロセスから呼び出したり、
シェルからRプログラムを渡して標準出力で受け取ったりはできるのでしょうか。

なにとぞよろしくお願いします。

240 :132人目の素数さん:2011/11/17(木) 12:17:43.67
>>239
$ echo 'print(pi)' |r
[1] 3.141593
とか
$ Rscript -e 'print(pi)'
[1] 3.141593


241 :240:2011/11/17(木) 12:20:00.76
>>239
> 標準出力で受け取ったり
無意味な例だけど、
$ echo 'print(pi)' |r | sed 's/3/A/g'
[1] A.14159A

242 :132人目の素数さん:2011/11/17(木) 18:28:14.48
>>240-241
ありがとうございました。
活用します。

243 :132人目の素数さん: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人目の素数さん: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人目の素数さん:2011/11/19(土) 03:14:20.46
persp関数により3次元グラフを描画しているのですが、borderの幅が小さいためか、グラフが真っ黒になってしまいます。
この幅を変更する方法はありますか?また、他の解決方法がありましたら、教えてください。

248 :132人目の素数さん:2011/11/19(土) 11:32:20.50
>>247
グラフを大きくした方がよさげだけど、
pdf(file="247.pdf",width=14,height=14)
persp(...)
dev.off()
ぐらいから、サイズを試行錯誤してみれば?
borderの幅が線幅のことなら、lwdなどで指定する。

249 :132人目の素数さん:2011/11/19(土) 19:55:55.59
>>248
コメントありがとうございます。
サイズや、線幅を変えて試行錯誤してみましたが、どうもborderの線と線の間隔が狭いのが原因のようです。
この線と線の間隔の設定はできないのでしょうか?よろしくお願いします。

250 :132人目の素数さん: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の整備と利用
http://mid.ism.ac.jp/stats/msg01502.html

252 :132人目の素数さん:2011/11/26(土) 00:49:00.80
いや、講習会じゃないんだけど…

253 :132人目の素数さん:2011/12/05(月) 12:21:38.19
>>238
ありがとうございました

254 :132人目の素数さん: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人目の素数さん:2011/12/05(月) 13:03:09.46
教員がココを見ていたら、>>254には単位をやらないことを勧める。

>>254
解答は1つではなく、人によって全く異なる解答例になる。
「100字以内で答えよ」という問題の解答が1人1人異なるのと同じ。
誰かがここに解答を示すかも知れないが、
ここの解答を写したことは、自分で独自に改変しない限り、バレるよ。

256 :132人目の素数さん:2011/12/05(月) 13:51:41.75
興味ない授業だが、取らなきゃいけない科目とかなのかな?


257 :132人目の素数さん:2011/12/05(月) 23:50:31.46
>>254
ヒント
names関数、xxxnames関数
LETTERS[1:10]、letters[1:10]
(LETTERS、letters は、組み込みの定数ベクター)

258 :132人目の素数さん:2011/12/06(火) 06:25:24.35
>>254
統計学の講義⁇


259 :132人目の素数さん: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人目の素数さん: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人目の素数さん:2011/12/07(水) 22:30:28.03
>>260
それだと、
colSums(DF[,2:501])*(2000-1)
と同じじゃね?

>>259
「2つ選んで価格を足し合わせ」る、っていうのが、イマイチ具体的に理解できない。もっと正確に書いてくれないだろうか
それに、なぜ全行について2つの全組み合わせが必要なの?

263 :259: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人目の素数さん: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人目の素数さん: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:2011/12/08(木) 23:19:36.17
>>265

全部でやると32bitなものでメモリの使用量が4GBを超えてしまいましたので
提示いただいた分割する方法でファイルに書き出して対応できました
ありがとうございました

268 :132人目の素数さん:2011/12/08(木) 23:34:00.09
>>267
32bitの壁が問題になるなら64bitつかった方がよいと思うのだけど。
自分はRのために3GB→6GBにメモリ増設した。

269 :132人目の素数さん: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人目の素数さん: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: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人目の素数さん:2011/12/14(水) 22:48:13.92
2変数の非線形連立方程式の解き方教えていただけませんでしょうか?

276 :132人目の素数さん: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人目の素数さん:2011/12/19(月) 15:08:40.40
来年から文系大学生です。
R言語って文系学部でも使いますか?
あと、使えると就職や進学に有利でしょうかね?

278 :132人目の素数さん:2011/12/19(月) 15:33:46.79
>>277
文系とは具体的に、どの分野?
経済学や社会学など社会科学分野なら統計解析は必須だろうし、
その他の文系でも、心理学、計算言語学、数理地理学とかデータ処理を扱うなら、
統計解析は必須だろう。統計解析を行うなら、R言語を使うこともあるだろう。

Rを自由自在に使えると就職や進学に有利かと問われれば、多くの場合、否でしょう。

279 :132人目の素数さん: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人目の素数さん: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
http://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人目の素数さん: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人目の素数さん:2011/12/23(金) 10:26:11.01
>>283
あー、ソースレベルって事すか。
バイナリリリースはちょっと待てっていうことですかね。
ありがとうございました。


285 :132人目の素数さん:2011/12/23(金) 23:31:39.85
>>280
ginv では?

286 :132人目の素数さん:2011/12/25(日) 10:11:34.88
>>282
http://essrc.hyogo-u.ac.jp/cran/
とかに
Download R 2.14.1 for Windows (45 megabytes, 32/64 bit)
が入りましたよ


287 :132人目の素数さん: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人目の素数さん: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人目の素数さん:2012/01/01(日) 13:50:09.79
>>290
rとRの区別もつかんのか

294 :132人目の素数さん:2012/01/01(日) 14:22:08.14
>>293
rもリンクされてなかったっけ?

295 :132人目の素数さん: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人目の素数さん:2012/01/01(日) 23:50:07.45
ややこしいなあ。

297 :132人目の素数さん:2012/01/02(月) 01:26:00.73
>>296
これをややこしいと思う人は、
incase-sensitiveな文化に脳を冒されている人

298 :132人目の素数さん: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人目の素数さん:2012/01/04(水) 16:16:24.48
>>298
MacPorts版のMacOSX版(ややこしいな)だとどうだろう。

300 :132人目の素数さん: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人目の素数さん: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人目の素数さん: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人目の素数さん:2012/01/15(日) 19:09:49.95
>>303
まぁ
r-project
r-script
r 統計
このあたりですね


306 :132人目の素数さん: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人目の素数さん: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人目の素数さん:2012/01/19(木) 08:24:58.31
>>312
おお、そんな関数があったとは。


325 :132人目の素数さん:2012/01/19(木) 08:25:39.88
>>313
おお、そんな関数があったとは。


326 :308:2012/01/19(木) 08:26:49.60
>>322
おお、そんな関数があったとは。


327 :132人目の素数さん:2012/01/19(木) 16:46:26.30
>>323
おお、そんな関数があったとは。


328 :132人目の素数さん:2012/01/19(木) 18:16:15.47
>>313
おお、そんな関数があったとは。


329 :308:2012/01/19(木) 19:21:49.25
>>312
おお、そんな関数があったとは。


330 :132人目の素数さん:2012/01/19(木) 21:24:53.73
>>305
あと、R sourceとかね。

331 :132人目の素数さん:2012/01/19(木) 21:40:30.51
>>330
おお、そんな関数があったとは。


332 :132人目の素数さん: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:2012/01/19(木) 22:19:02.38
>>330
おお、そんなsourceがあったとは。


338 :308:2012/01/19(木) 22:19:42.03
>>330
おお、そんなsourceがあったとは。


339 :308:2012/01/19(木) 22:20:11.53
>>330
おお、そんなsourceがあったとは。


340 :132人目の素数さん:2012/01/19(木) 23:14:29.36
おおそんウェールズだったとは。

341 :308:2012/01/20(金) 04:32:17.58
おまえら、いい加減にしなさい。

342 :132人目の素数さん:2012/01/20(金) 05:22:51.54
おまえら、いい加減にしなさい。

343 :313: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人目の素数さん: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: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人目の素数さん:2012/01/23(月) 13:13:39.14
RStudio最新版(0.94.110)はR-2.14以降も動作していますか?
RStudioご利用の方いましたら、ご一報お願いします

352 :132人目の素数さん: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人目の素数さん:2012/01/23(月) 18:42:28.25
Rjpwikiのヲチで申し訳ないが、
河童さんが、par(mfrow=c(2,1))を使わずに、layout(matrix(1:2, 2))を使う理由って何だろう。
layout()だとなんかいいことがあるのかな?


354 :308: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人目の素数さん: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: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: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人目の素数さん: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人目の素数さん:2012/01/26(木) 10:23:38.00
>>361
>>356だけど、正統なプログラミングの勉強をしたことがない。
プログラミングの勉強って、語学の勉強と似ていると思う。
一通り、文法を勉強したら、あとはひたすら経験を積むだけ。
人の表現を聞いて、あぁこういう場面ではこういう風に言えばいいのか、
と人まねを積み重ねる。

一通りの文法レベルの話なら、私はまだ未読だけど、
間瀬先生のRプログラミングマニュアルはどうかな。
間瀬先生の本なら、間違いはないと思う。

>>359
おぉ素晴らしい。rle()の存在を失念していました。



363 :359: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:2012/01/27(金) 15:34:02.11
基本的な物を見落としておりますた。
すみません

366 :132人目の素数さん:2012/01/28(土) 12:45:02.86
>>364
sum(vector.name[p:q])
が一番普通か

367 :132人目の素数さん: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



368 :132人目の素数さん:2012/01/30(月) 11:00:34.81
>>367
ぱっと思いつくのは、グリッドを作成して、(x,y,z)の値から、スプラインやkrigingなど
空間平滑法で各グリッド点における値を推定し、それで等値線を描く。

369 :名無しさん:2012/01/30(月) 21:51:46.12 ID:???
>>368
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
っていうのが見つかりました。
ちょっとやってみます。どもでした。


370 :名無しさん:2012/01/30(月) 23:07:03.68 ID:???
フジテレビ式円グラフはどうやって作ればよいのでしょうか?
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())



371 :名無しさん:2012/01/30(月) 23:16:40.05 ID:???
>>370
また奥村先生がアップをはじめそうなグラフが出てきたな。

372 :名無しさん:2012/01/31(火) 00:39:21.68 ID:???
中心をずらすって言うのはグラフ的にあり得ないからグラフのパッケージでは無理だと思う。
できるとしたら地図関係のパッケージだろうね。

373 :名無しさん:2012/01/31(火) 10:47:16.46 ID:???
>>369
こんな感じじゃないの
i <- (1:360)/360*2*pi
cntr <- c(0.1,0.3)
v <- c(94,78,78,97)
arc <- cut(1:360,c(0,round(cumsum(v)*360/sum(v)),Inf))

plot(cos(i),sin(i),type="n",asp=1,axes=FALSE,xlab="",ylab="")
l <- levels(arc)
cols <- c("deepskyblue","dodgerblue1","dodgerblue3","brown1")
lbs <- c("50代\n94人","40代\n78人","30代\n78人","10〜20代\n97人")
cexs <- c(1.5,1.5,1.5,3)
for (j in 1:4){
k <- c(i[arc==l[j]],max(i[arc==l[j]])+1/360*2*pi)
polygon(c(cntr[1],cos(k)),c(cntr[2],sin(k)),
col=cols[j])
text(mean(cos(k))/1.5,mean(sin(k))/1.5,lbs[j],cex=cexs[j])
}


374 :名無しさん:2012/01/31(火) 12:12:08.71 ID:???
>>370
ウジのグラフは、センターがずれてるだけじゃなくて「弧の長さの割合」も意図的に変えてるから、完全再現は無理みたいよw
参考 http://blog.kzfmix.com/entry/1327735061

そもそも、あんなおぞましいグラフを好んで描く必要ないと思うけど、こんなんでどう?
library(grid)
quartz(height=4, width=4)
#png(filename = "fuji-pie.png", width = 360, height = 360, units = "px")
num <- c(94, 97, 78, 78)
distortion <- c(1, 1.2, 1, 1) # <- !!
dist_num <- num * distortion
cum <- c(0, cumsum(dist_num))
rad <- cum / sum(dist_num) * 360 / 180 * pi
colors <- c("#0000FFAA", "#FF0000AA", "#000055AA", "#0000AAAA")
labels <- paste(c("50ies¥n", "10~20ies¥n", "30ies¥n", "40ies¥n"), num, " ps", sep="")
lab_cex <- c(1, 1.5, 1, 1)
lab_col <- c("white", "yellow", "white", "white")
div <- 200 # 円弧部分の分割数
dx <- 0 # 半径=0.5 として、x 方向への中心のズレ (-0.1 とかにすると、より強烈w)
dy <- 0.1 # 半径=0.5 として、y 方向への中心のズレ
for (i in 1:length(num)) {
x <- c(0.5 + dx, 0.5 + 0.5 * sin(rad[i]), 0.5 + 0.5 * sin(seq(rad[i], rad[i+1], length.out=div)), 0.5 + 0.5 * sin(rad[i+1]))
y <- c(0.5 + dy, 0.5 + 0.5 * cos(rad[i]), 0.5 + 0.5 * cos(seq(rad[i], rad[i+1], length.out=div)), 0.5 + 0.5 * cos(rad[i+1]))
grid.polygon(x=x, y=y, gp=gpar(fill=colors[i]))
grid.text(x=0.5 + 0.4 * sin((rad[i]+rad[i+1])/2), y=0.5 + 0.4 * cos((rad[i]+rad[i+1])/2), label=labels[i], gp=gpar(col=lab_col[i], cex=lab_cex[i]))
}
#dev.off()

RjpWikiにも置いときました。
http://www.okada.jp.org/RWiki/?R%20%A4%C7%A5%A8%A5%F3%A5%BF%A5%E1#nf026bb6


375 :名無しさん:2012/01/31(火) 12:41:24.02 ID:???
>>373-374
すげー
これフジテレビに売り込みにいけよwww

376 :373:2012/01/31(火) 14:45:06.35 ID:???
私の方もRjpwikiに追加しておきました。

>>374さんは河童さんかと一瞬思ったけど、
そういえば河童さんはgridが嫌いだったから、別な人ですね。

377 :375:2012/01/31(火) 23:04:16.60 ID:???
もちろん、河童さんの足下にも及ばない半素人です

裏Wikiの方でも、がっつりとダメ出しされましたw
でも「裏」氏のファンなので、ちょっと嬉しかったりもしますw

378 :374:2012/01/31(火) 23:16:34.60 ID:???
↑で、名前間違えてた...orz

379 :名無しさん:2012/01/31(火) 23:52:13.20 ID:???
まさに誰得関数!

380 :132人目の素数さん:2012/02/02(木) 15:19:45.32
知恵を貸してください。
0〜6ぐらいまでの整数を要素にもつサイズが50のベクトルを作りたい。
できればポアソン分布に従って。
ここまでなら、
> rpois(50,2.5)
[1] 1 1 1 4 4 3 0 3 3 3 0 1 1 0 4 5 2 2 2 2 4 0 4 4 2 1 3 1 1 3 3 2 1 1 3 4 3 3
[39] 3 3 4 1 1 1 5 5 1 0 3 6
こんな感じでできるんだけど、このベクトルの合計をきっちり150にしたい。
固定したいのは、ベクトルサイズ50とベクトル合計値150だけで、lambdaとかは適当でいい。

当たり前だけど、合計値は変動する。
> sum(rpois(50,2.5))
[1] 132
> sum(rpois(50,2.5))
[1] 131
> sum(rpois(50,2.5))
[1] 118

こういうときはどうすればいいんだろうか。
よろしくお願いします。

381 :132人目の素数さん:2012/02/02(木) 16:52:09.32
>>380
無理やりの処理だが、こんなんじゃ駄目?

mypois <- function(n=50,sum=150,adjtimes=10){
myvec <- rep(0,times=n)
mysum <- 0
for(i in 1:adjtimes){
mysum <- sum(myvec)
myvec <- myvec + sign(sum-mysum)*rpois(n,abs(sum-mysum)/n)
myvec[myvec < 0] <- 0
if( abs(sum-mysum) == 0 ){ break }
}
return(myvec)
}

> x <- mypois(50,150)
> x
[1] 3 2 3 2 5 3 4 5 4 0 1 1 5 4 6 3 5 5 0 4 4 3 4 5 4 7 1 4 1 2 1 2 3 2 1 3 7 2
[39] 0 2 2 3 0 1 3 6 3 4 2 3
> sum(x)
[1] 150


382 :381:2012/02/02(木) 17:00:53.33
0から6になってなかったのと、計算の順番がおかしかったので修正した。

mypois <- function(n=50,sum=150,max=6,adjtimes=10){
myvec <- rep(0,times=n)
mysum <- 0
for(i in 1:adjtimes){
myvec <- myvec + sign(sum-mysum)*rpois(n,abs(sum-mysum)/n)
myvec[myvec < 0] <- 0
myvec[myvec > max] <- max
mysum <- sum(myvec)
if( abs(sum-mysum) == 0 ){ break }
}
return(myvec)
}

> x <- mypois(50,150,6)
> x
[1] 1 6 1 0 5 3 5 1 2 6 3 3 6 3 3 3 3 3 1 4 2 3 3 0 5 4 3 6 3 5 2 4 4 0 2 1 3 3
[39] 2 4 0 2 1 3 6 4 4 2 1 6
> sum(x)
[1] 150


383 :381:2012/02/02(木) 17:33:39.03
青木先生のところの poissondist に嵌めたら、今一つなのは、
0〜6からはみ出たデータを丸めたからかな。上手い方法がないものかねぇ。

> x <- mypois(50,150,6)
> x
[1] 5 2 1 3 4 4 3 4 3 0 5 5 3 3 1 2 4 4 4 2 5 0 3 4 2 2 3 4 4 1 6 1 1 5 4 4 2 4
[39] 2 5 1 3 2 0 5 2 5 4 1 3
> poissondist(hist(x,plot=F)$counts)

ポアソン分布への適合度の検定

data: hist(x, plot = F)$counts
X-squared = 9.7821, df = 4, p-value = 0.04426
sample estimates:
n lambda
50.00 2.06


384 :132人目の素数さん:2012/02/02(木) 18:40:11.25
>>381-383
おぉ、十分です。最大は「6ぐらい」なので7とかでもOKですから、
丸めはマイナスになるときだけ必要です。
for文のところはとても勉強になりました。
ありがとうございました。


385 :132人目の素数さん:2012/02/06(月) 23:36:20.10
こんばんはR初心者です。
一通り調べたのですが、分からない事があるので質問させてください。
○行ごとのplotを行いたい場合、どのようなコマンドを打てば良いのでしょうか?

例えば、
y1 y2...y10
x1
x2
.
.
.
x100
このような100行×10列のデータフレーム名Xの2列目と4列目をplotしたい場合、
plot(X$y2,X$y4)で1行ごとのplotは出来るのですが、
これをx1,x5,...x100と5行おきにplotしたいのです。

どうかご教授ください。


386 :132人目の素数さん:2012/02/07(火) 00:25:49.86
>>385
X1 <- X[(0:20)*5+2, ]

387 :132人目の素数さん:2012/02/07(火) 08:46:05.39
>>385
>このような100行×10列のデータフレーム名Xの2列目と4列目をplotしたい場合、
>plot(X$y2,X$y4)で1行ごとのplotは出来るのですが、
>これをx1,x5,...x100と5行おきにplotしたいのです。

plot(X[seq(1, 100, 5), c(2, 4)])
でどう?

[行番号, 列番号]
で要素を指定

seq(from, to, by)で1,6,11.16...,100をつくる




388 :132人目の素数さん:2012/02/07(火) 22:43:27.83
>>385

1,5,...,100 は、最初だけ4行の間隔ですね。
5,10,15,...,100 、あるいは、1,6,11,...,96 ですか?

でしたら、私のお薦めも >>387 と同じ方法。


389 :132人目の素数さん:2012/02/08(水) 13:38:50.77
Emacs ESS でアンダースコアが" <- "になってしまうのが凄く迷惑なんだけど
なんであれがデフォルトなんだろう

390 :132人目の素数さん:2012/02/08(水) 17:34:58.86
タイプ量減るしいいじゃん。

391 :132人目の素数さん:2012/02/08(水) 20:31:18.89
>>389
アンダースコア2度打ちで、アンダースコアを入力できるというのを
知った上で迷惑と行っているのだろうね。

そもそもRではアンダースコアは使用禁止だったので、
空いているアンダースコアにその機能が割り当てられたという歴史的経緯がある。
デフォルトの理由は、>>390の言うとおり便利で楽だかから。
いやな人は設定を変更すればいいし。

逆にターミナルでRを使っていて、<-のつもりでアンダースコアを入力して
イラッと来ることがある。


392 :132人目の素数さん:2012/02/08(水) 22:46:01.26
>>391
設定変えるためにググってたらrjpに飛んで、そこで初めて二度打ちやC-q _ でアンダースコアを入力できることを知った

アンダースコアを打つためにわざわざテキストモードに変更してた

よく調べもしないで愚痴言ってすいません

393 :132人目の素数さん:2012/02/13(月) 12:25:46.70
emacs essでRコマンダー使うとRコマンダーで外部データを読み込ませた瞬間固まるorz
うまくいってるかたいますか?


394 :393:2012/02/13(月) 14:44:06.36
すいません自己解決?しました。

emacsのR側で一行でも改行がコマンドを実行すればコマンダー側のフリーズが直りました。

フリーズ自体は何台かのPCで試したところ起こる場合と起こらない場合がありました。
環境に依存するようです。


395 :132人目の素数さん:2012/02/13(月) 22:00:37.21
>>393,394
emacs ess で Rコマンダーを使うメリットって、何?
利点がまったく分からないのだけど。


396 :393:2012/02/14(火) 00:04:31.33
>>395
ご指摘のとおりで。
研究仲間がコマンダー使ってて、両方同時に使えると便利だから試しました。
まぁそうじゃなくても使えないよりは使えたほうが少しくらい便利かなと、、、

397 :132人目の素数さん:2012/02/15(水) 23:54:50.83
Rにはschemeなんかのfoldにあたるような高階関数はないんですか?
せっかくベクトル演算言語なので数え上げも高階関数で出来ればと思ったんですが。

398 :132人目の素数さん:2012/02/16(木) 09:49:58.30
>>397
http://stat.ethz.ch/R-manual/R-patched/library/base/html/funprog.html
プログラミング言語はよくわからないけど、これは参考になるだろうか?

399 :132人目の素数さん:2012/02/16(木) 09:57:29.11
>>398
たぶん Reduce()がfoldに相当するんじゃね

400 :397:2012/02/16(木) 16:23:10.40
>>398>>399
それです
ありがとうございます

401 :398:2012/02/16(木) 16:52:41.50
>>400
いまいちイメージがわかないんだけど、面白い使い方があったら、教えてくだされ

402 :132人目の素数さん:2012/02/17(金) 05:50:16.64
lmによる回帰分析で、切片をあらかじめ固定することはできますか?
切片を取り除くには「-1」を指定するということはわかりますが、ここを好きな値に固定したいのですが・・・

403 :132人目の素数さん:2012/02/17(金) 13:00:44.62
>>402
ttp://r.789695.n4.nabble.com/R-Forcing-the-intercept-td812422.html


404 :397:2012/02/17(金) 19:52:56.72
>>401
おもしろいかどうかわかりませんが、
data <- as.integer(runif(10,1,21))
のようなデータがある時に、
predicate <- function(x) { x < 5 }
が真になるような項目を数え上げたいとします。

for文を使うと

ret <- 0
for(i in 1:length(data)){ if (predicate(data[i])) { ret <- ret + 1 } }

のような形になりますが、高階関数を使うと、

length(Filter(predicate, data))

と書けるようになります。
これは関数プログラミングの技法で、もう少し詳しく学びたいようでしたら
programming in haskellなんかが薄くていい本なんじゃないかと思います。

405 :132人目の素数さん:2012/02/17(金) 20:15:30.11
>>404
>>401じゃなくて申し訳ないが、
> length(Filter(predicate, data))
[1] 4
> sum(data<5)
[1] 4

この場合だと下の方が簡単。しかも、
> system.time(sapply(1:1000, function(x){length(Filter(predicate, data))}))
ユーザ システム 経過
0.072 0.000 0.074
> system.time(sapply(1:1000, function(x){sum(data<5)}))
ユーザ システム 経過
0.000 0.000 0.002
圧倒的に速い。

406 :405:2012/02/17(金) 20:17:05.57
s/下の方が/後者の方が/


407 :132人目の素数さん:2012/02/17(金) 22:46:29.44
>>404
「おぉ高階関数はこれほどまでに便利なものかと実感できる事例」を期待している。

408 :132人目の素数さん:2012/02/18(土) 05:48:26.33
rubyで高階関数組み合わせてやってたけど
Rに移ってtapplyとかmapplyが便利すぎて禿げた

409 :132人目の素数さん:2012/02/18(土) 06:05:41.05
>>404
Filter()の例は
length(data[data < 5])
みたいなもんか


410 :397:2012/02/18(土) 11:40:22.15
>>405
なるほど、そんな書き方が出来るんですか
だとしたらそちらの方がよさそうです
速度はおそらく最適化の問題でしょう
下の方がRネイティブっぽいので十分な最適化が行われているんだとおもいます

411 :397:2012/02/18(土) 12:01:56.66
>>407
事例はちょっと思いつかないんですが
高階関数はプログラムの中の構造を関数として再利用するためのものです

その点では>>404はあまりいい例ではなくて、
ret<-0
for(i in 1:length(data)){if(predicate(data[i])){ret<-ret+1}else{ret}}
について高階関数を利用する例だとすると、
Reduce(function(ret, x){if(predicate(x)){ret+1}else{ret}},data,0)
になります。これは外側のループの部分の構造をReduceという関数で再利用していると言う形になります

でもどうやらこの手の単純な高階関数はベクトル計算という形でRに組み込まれているようなので
あまり出番はなさそうですね

412 :132人目の素数さん:2012/02/19(日) 03:55:37.05
          __ノ)-'´ ̄ ̄`ー- 、_
        , '´  _. -‐'''"二ニニ=-`ヽ、
      /   /:::::; -‐''"        `ーノ
     /   /:::::/           \
     /    /::::::/          | | |  |
     |   |:::::/ /     |  | | | |  |
      |   |::/ / / |  | ||  | | ,ハ .| ,ハ|
      |   |/ / / /| ,ハノ| /|ノレ,ニ|ル' 
     |   |  | / / レ',二、レ′ ,ィイ|゙/   私は只の数ヲタなんかとは付き合わないわ。
.     |   \ ∠イ  ,イイ|    ,`-' |      頭が良くて数学が出来てかっこいい人。それが必要条件よ。
     |     l^,人|  ` `-'     ゝ  |        さらに Ann.of Math に論文書けば十分条件にもなるわよ。
      |      ` -'\       ー'  人          一番嫌いなのは論文数を増やすためにくだらない論文を書いて
    |        /(l     __/  ヽ、           良い論文の出版を遅らせるお馬鹿な人。
     |       (:::::`‐-、__  |::::`、     ヒニニヽ、         あなたの論文が Ann of Math に accept される確率は?
    |      / `‐-、::::::::::`‐-、::::\   /,ニニ、\            それとも最近は Inv. Math. の方が上かしら?
   |      |::::::::::::::::::|` -、:::::::,ヘ ̄|'、  ヒニ二、 \
.   |      /::::::::::::::::::|::::::::\/:::O`、::\   | '、   \
   |      /:::::::::::::::::::/:::::::::::::::::::::::::::::'、::::\ノ  ヽ、  |
  |      |:::::/:::::::::/:::::::::::::::::::::::::::::::::::'、',::::'、  /:\__/‐、
  |      |/:::::::::::/::::::::::::::::::::::::::::::::::O::| '、::| く::::::::::::: ̄|
   |     /_..-'´ ̄`ー-、:::::::::::::::::::::::::::::::::::|/:/`‐'::\;;;;;;;_|
   |    |/::::::::::::::::::::::\:::::::::::::::::::::::::::::|::/::::|::::/:::::::::::/
    |   /:::::::::::::::::::::::::::::::::|:::::::::::::::::::::O::|::|::::::|:::::::::::::::/

413 :132人目の素数さん:2012/02/19(日) 08:58:51.23
教えてください。
Epiパッケージを使用して、ROC曲線下面積を求めたら0.5未満になりました。
独立変数は二分変数に関係しないと判断しその値(0.425)を記載することは正しいのでしょうか?



414 :132人目の素数さん:2012/02/19(日) 17:00:59.94
アウトカムの変数は予測因子の数字が大きくなると大きくなると陽性になりますか?もし数が大きい方がアウトカムが陰性ならば、アウトカムの1,0をひっくり返す必要があるかも?

415 :132人目の素数さん:2012/02/19(日) 23:14:01.45
>>414
ありがとうございます。
明日にでも、いれかえて検討してみます。

416 :132人目の素数さん:2012/02/29(水) 23:39:27.42
応答曲面法で最適値を求めるっていうのは出来ないのか?
パッケージrsmがそれっぽいんだが


417 :132人目の素数さん:2012/03/01(木) 23:08:27.13
>>416
なんていうか、もろに、rsm() がそうなんだが?
使い方は
http://www.jstatsoft.org/v32/i07/paper
をみてくれ


418 :132人目の素数さん:2012/03/03(土) 12:45:30.73
Rを2.14.2にしたいんですが、インストールして再起動すると確かに2.14.2にはなるんですが、保存していたオブジェクトが全て消えてしまいます
オブジェクトを引き継ぐ方法はないんでしょうか?
今は2.13.1を使ってます

419 :132人目の素数さん:2012/03/03(土) 16:40:03.10
save(list = ls(all=TRUE), file = "old.RData")
で明示的に保存ファイルを作って、
それを新バージョンで
load(file = "old.RData")
したらどうなる?



420 :132人目の素数さん:2012/03/04(日) 18:26:31.31
マルチコア対応しましたか〜??

421 :132人目の素数さん:2012/03/04(日) 19:53:40.43
parallelというパッケージができたね

422 :132人目の素数さん:2012/03/04(日) 20:21:12.91
>>420
ググると、gotoBLASをマルチコア向けにコンパイルしてRで利用する話が、
詳しく解説されている。

調子に乗ってcuBLASに差し替えられないかと考え、
プログラム板のcudaスレに行ったことがあるが、
あそこの住人はnvccを使わない人間をバカだと考えているみたいだ。

423 :420:2012/03/04(日) 22:56:21.28
>>421 >>422
良い情報をありがとうございます。
調べてみます。

シングルスレッド性能でのCPU探しも終わりにしたいですw

424 :132人目の素数さん:2012/03/04(日) 23:06:08.66
今なら分散処理じゃ無いかな。IT系のWebサイトじゃあ hadoop とか流行ってるし、
解きたい課題を Map-Reduce に落とし込めればRでの分散処理も可能かと。

425 :132人目の素数さん:2012/03/08(木) 19:59:09.03
ttp://cran.r-project.org/bin/linux/ubuntu/
preciseはまだまだ来ないね。

426 :132人目の素数さん:2012/03/11(日) 23:35:42.80
R初心者でpolr関数を使って解析しているのですが、
P値の出し方がわかりません。

お分かりになる方いらっしゃいましたら教えて頂けないでしょうか。

詳細な情報が必要であれば補足します。

427 :132人目の素数さん:2012/03/12(月) 16:16:16.41
http://stats.stackexchange.com/questions/7720/how-to-understand-output-from-rs-polr-function-ordered-logistic-regression
の二番目の最後のところをみると、正確にはもとまらないから、計算されないようになっている、ということのように思いました。

428 :132人目の素数さん:2012/03/13(火) 00:08:39.50
http://www.r-project.org/
R 2.15.0 prerelease versions are currently available. Final release is scheduled for March 30.

429 :132人目の素数さん:2012/03/15(木) 07:30:22.52
          __ノ)-'´ ̄ ̄`ー- 、_
        , '´  _. -‐'''"二ニニ=-`ヽ、
      /   /:::::; -‐''"        `ーノ
     /   /:::::/           \
     /    /::::::/          | | |  |
     |   |:::::/ /     |  | | | |  |
      |   |::/ / / |  | ||  | | ,ハ .| ,ハ|
      |   |/ / / /| ,ハノ| /|ノレ,ニ|ル' 
     |   |  | / / レ',二、レ′ ,ィイ|゙/   私は只の数ヲタなんかとは付き合わないわ。
.     |   \ ∠イ  ,イイ|    ,`-' |      頭が良くて数学が出来てかっこいい人。それが必要条件よ。
     |     l^,人|  ` `-'     ゝ  |        さらに Ann.of Math に論文書けば十分条件にもなるわよ。
      |      ` -'\       ー'  人          一番嫌いなのは論文数を増やすためにくだらない論文を書いて
    |        /(l     __/  ヽ、           良い論文の出版を遅らせるお馬鹿な人。
     |       (:::::`‐-、__  |::::`、     ヒニニヽ、         あなたの論文が Ann of Math に accept される確率は?
    |      / `‐-、::::::::::`‐-、::::\   /,ニニ、\            それとも最近は Inv. Math. の方が上かしら?
   |      |::::::::::::::::::|` -、:::::::,ヘ ̄|'、  ヒニ二、 \
.   |      /::::::::::::::::::|::::::::\/:::O`、::\   | '、   \
   |      /:::::::::::::::::::/:::::::::::::::::::::::::::::'、::::\ノ  ヽ、  |
  |      |:::::/:::::::::/:::::::::::::::::::::::::::::::::::'、',::::'、  /:\__/‐、
  |      |/:::::::::::/::::::::::::::::::::::::::::::::::O::| '、::| く::::::::::::: ̄|
   |     /_..-'´ ̄`ー-、:::::::::::::::::::::::::::::::::::|/:/`‐'::\;;;;;;;_|
   |    |/::::::::::::::::::::::\:::::::::::::::::::::::::::::|::/::::|::::/:::::::::::/
    |   /:::::::::::::::::::::::::::::::::|:::::::::::::::::::::O::|::|::::::|:::::::::::::::/

430 :132人目の素数さん:2012/03/20(火) 20:20:19.86
Rを使ってる最中(emacs+ess)
作ったオブジェクトの数が多くなって、ls()で変数名を見ても、
思い出せない。

こういう状況に対処するにはどうしたら良い?
新しい環境を用意して、そちらに移す?(assignを使って、.GlobalEnvのものを消す?)
それとも、特定のファイルに保存する?(複数個のオブジェクトを1ファイルに保存できる?)

よい方法などがあれば、教えて。

あと、
emacs+essを使ってるけど、lispとかは分からんので、
emacsの機能での解決方法を示されても反応できないかも。
その時は、ごめんなさい。

431 :430:2012/03/20(火) 20:22:30.66
言葉不足だったので、訂正します。
>>assignを使って、.GlobalEnvのものを消す?
assignを使って別の環境にデータを入れて、.GlobalEnvの方は消す?

432 :430:2012/03/20(火) 20:28:40.90
>>419
でファイルに保存する方法があったね。見てなかった。

save(list=c("オブジェクト名1","オブジェクト名2"),file="a_path")
とかでもいいのか。でも、なんか面倒だな。

433 :132人目の素数さん:2012/03/20(火) 21:37:25.25
>>430
変数名を見ても思い出せない命名法に問題がありそうだけど
あと俺は使っていないけどcomment()を上手に使うとか。

434 :430:2012/03/21(水) 00:50:48.76
>>433
こんな感じ?
tmp <- sapply(ls(), function(x)comment(eval(parse(text=x))))
tmp[sapply(tmp,is.null)] <- NULL
tmp
これを関数にしておいて、呼び出せば良いかな?

あとは、commentに自動的に参照or作成時間を入れておくとかかな。
どうやったらできるか分からないけど。

435 :132人目の素数さん:2012/03/22(木) 22:37:07.40
スクリプトをファイルに書き出して基本的にはバッチモードでRを動作させております。
その場合のエラーハンドリングってどうしてますか?
stop関数で停止はするのですが、
どの関数のどの行数で停止したかなどがいまいちわかりづらいときがあります。
引数で与えるコメントを変えればいいのでしょうが、いちいち面倒なので。。。

例えばCだと
printf("%s %s\n", __FILE__, __LINE__);
なんかで対応できるんですが。。

いい方法ありますか?

436 :132人目の素数さん:2012/03/26(月) 13:16:29.99
          __ノ)-'´ ̄ ̄`ー- 、_
        , '´  _. -‐'''"二ニニ=-`ヽ、
      /   /:::::; -‐''"        `ーノ
     /   /:::::/           \
     /    /::::::/          | | |  |
     |   |:::::/ /     |  | | | |  |
      |   |::/ / / |  | ||  | | ,ハ .| ,ハ|
      |   |/ / / /| ,ハノ| /|ノレ,ニ|ル' 
     |   |  | / / レ',二、レ′ ,ィイ|゙/   私は只の数ヲタなんかとは付き合わないわ。
.     |   \ ∠イ  ,イイ|    ,`-' |      頭が良くて数学が出来てかっこいい人。それが必要条件よ。
     |     l^,人|  ` `-'     ゝ  |        さらに Ann.of Math に論文書けば十分条件にもなるわよ。
      |      ` -'\       ー'  人          一番嫌いなのは論文数を増やすためにくだらない論文を書いて
    |        /(l     __/  ヽ、           良い論文の出版を遅らせるお馬鹿な人。
     |       (:::::`‐-、__  |::::`、     ヒニニヽ、         あなたの論文が Ann of Math に accept される確率は?
    |      / `‐-、::::::::::`‐-、::::\   /,ニニ、\            それとも最近は Inv. Math. の方が上かしら?
   |      |::::::::::::::::::|` -、:::::::,ヘ ̄|'、  ヒニ二、 \
.   |      /::::::::::::::::::|::::::::\/:::O`、::\   | '、   \
   |      /:::::::::::::::::::/:::::::::::::::::::::::::::::'、::::\ノ  ヽ、  |
  |      |:::::/:::::::::/:::::::::::::::::::::::::::::::::::'、',::::'、  /:\__/‐、
  |      |/:::::::::::/::::::::::::::::::::::::::::::::::O::| '、::| く::::::::::::: ̄|
   |     /_..-'´ ̄`ー-、:::::::::::::::::::::::::::::::::::|/:/`‐'::\;;;;;;;_|
   |    |/::::::::::::::::::::::\:::::::::::::::::::::::::::::|::/::::|::::/:::::::::::/
    |   /:::::::::::::::::::::::::::::::::|:::::::::::::::::::::O::|::|::::::|:::::::::::::::/

437 :132人目の素数さん:2012/03/26(月) 17:52:13.93
          __ノ)-'´ ̄ ̄`ー- 、_
        , '´  _. -‐'''"二ニニ=-`ヽ、
      /   /:::::; -‐''"        `ーノ
     /   /:::::/           \
     /    /::::::/          | | |  |
     |   |:::::/ /     |  | | | |  |
      |   |::/ / / |  | ||  | | ,ハ .| ,ハ|
      |   |/ / / /| ,ハノ| /|ノレ,ニ|ル' 
     |   |  | / / レ',二、レ′ ,ィイ|゙/   私は只の数ヲタなんかとは付き合わないわ。
.     |   \ ∠イ  ,イイ|    ,`-' |      頭が良くて数学が出来てかっこいい人。それが必要条件よ。
     |     l^,人|  ` `-'     ゝ  |        さらに Ann.of Math に論文書けば十分条件にもなるわよ。
      |      ` -'\       ー'  人          一番嫌いなのは論文数を増やすためにくだらない論文を書いて
    |        /(l     __/  ヽ、           良い論文の出版を遅らせるお馬鹿な人。
     |       (:::::`‐-、__  |::::`、     ヒニニヽ、         あなたの論文が Ann of Math に accept される確率は?
    |      / `‐-、::::::::::`‐-、::::\   /,ニニ、\            それとも最近は Inv. Math. の方が上かしら?
   |      |::::::::::::::::::|` -、:::::::,ヘ ̄|'、  ヒニ二、 \
.   |      /::::::::::::::::::|::::::::\/:::O`、::\   | '、   \
   |      /:::::::::::::::::::/:::::::::::::::::::::::::::::'、::::\ノ  ヽ、  |
  |      |:::::/:::::::::/:::::::::::::::::::::::::::::::::::'、',::::'、  /:\__/‐、
  |      |/:::::::::::/::::::::::::::::::::::::::::::::::O::| '、::| く::::::::::::: ̄|
   |     /_..-'´ ̄`ー-、:::::::::::::::::::::::::::::::::::|/:/`‐'::\;;;;;;;_|
   |    |/::::::::::::::::::::::\:::::::::::::::::::::::::::::|::/::::|::::/:::::::::::/
    |   /:::::::::::::::::::::::::::::::::|:::::::::::::::::::::O::|::|::::::|:::::::::::::::/

438 :132人目の素数さん:2012/03/27(火) 00:36:36.55
          __ノ)-'´ ̄ ̄`ー- 、_
        , '´  _. -‐'''"二ニニ=-`ヽ、
      /   /:::::; -‐''"        `ーノ
     /   /:::::/           \
     /    /::::::/          | | |  |
     |   |:::::/ /     |  | | | |  |
      |   |::/ / / |  | ||  | | ,ハ .| ,ハ|
      |   |/ / / /| ,ハノ| /|ノレ,ニ|ル' 
     |   |  | / / レ',二、レ′ ,ィイ|゙/   私は只の数ヲタなんかとは付き合わないわ。
.     |   \ ∠イ  ,イイ|    ,`-' |      頭が良くて数学が出来てかっこいい人。それが必要条件よ。
     |     l^,人|  ` `-'     ゝ  |        さらに Ann.of Math に論文書けば十分条件にもなるわよ。
      |      ` -'\       ー'  人          一番嫌いなのは論文数を増やすためにくだらない論文を書いて
    |        /(l     __/  ヽ、           良い論文の出版を遅らせるお馬鹿な人。
     |       (:::::`‐-、__  |::::`、     ヒニニヽ、         あなたの論文が Ann of Math に accept される確率は?
    |      / `‐-、::::::::::`‐-、::::\   /,ニニ、\            それとも最近は Inv. Math. の方が上かしら?
   |      |::::::::::::::::::|` -、:::::::,ヘ ̄|'、  ヒニ二、 \
.   |      /::::::::::::::::::|::::::::\/:::O`、::\   | '、   \
   |      /:::::::::::::::::::/:::::::::::::::::::::::::::::'、::::\ノ  ヽ、  |
  |      |:::::/:::::::::/:::::::::::::::::::::::::::::::::::'、',::::'、  /:\__/‐、
  |      |/:::::::::::/::::::::::::::::::::::::::::::::::O::| '、::| く::::::::::::: ̄|
   |     /_..-'´ ̄`ー-、:::::::::::::::::::::::::::::::::::|/:/`‐'::\;;;;;;;_|
   |    |/::::::::::::::::::::::\:::::::::::::::::::::::::::::|::/::::|::::/:::::::::::/
    |   /:::::::::::::::::::::::::::::::::|:::::::::::::::::::::O::|::|::::::|:::::::::::::::/

439 :132人目の素数さん:2012/03/27(火) 12:48:45.92
          __ノ)-'´ ̄ ̄`ー- 、_
        , '´  _. -‐'''"二ニニ=-`ヽ、
      /   /:::::; -‐''"        `ーノ
     /   /:::::/           \
     /    /::::::/          | | |  |
     |   |:::::/ /     |  | | | |  |
      |   |::/ / / |  | ||  | | ,ハ .| ,ハ|
      |   |/ / / /| ,ハノ| /|ノレ,ニ|ル' 
     |   |  | / / レ',二、レ′ ,ィイ|゙/   私は只の数ヲタなんかとは付き合わないわ。
.     |   \ ∠イ  ,イイ|    ,`-' |      頭が良くて数学が出来てかっこいい人。それが必要条件よ。
     |     l^,人|  ` `-'     ゝ  |        さらに Ann.of Math に論文書けば十分条件にもなるわよ。
      |      ` -'\       ー'  人          一番嫌いなのは論文数を増やすためにくだらない論文を書いて
    |        /(l     __/  ヽ、           良い論文の出版を遅らせるお馬鹿な人。
     |       (:::::`‐-、__  |::::`、     ヒニニヽ、         あなたの論文が Ann of Math に accept される確率は?
    |      / `‐-、::::::::::`‐-、::::\   /,ニニ、\            それとも最近は Inv. Math. の方が上かしら?
   |      |::::::::::::::::::|` -、:::::::,ヘ ̄|'、  ヒニ二、 \
.   |      /::::::::::::::::::|::::::::\/:::O`、::\   | '、   \
   |      /:::::::::::::::::::/:::::::::::::::::::::::::::::'、::::\ノ  ヽ、  |
  |      |:::::/:::::::::/:::::::::::::::::::::::::::::::::::'、',::::'、  /:\__/‐、
  |      |/:::::::::::/::::::::::::::::::::::::::::::::::O::| '、::| く::::::::::::: ̄|
   |     /_..-'´ ̄`ー-、:::::::::::::::::::::::::::::::::::|/:/`‐'::\;;;;;;;_|
   |    |/::::::::::::::::::::::\:::::::::::::::::::::::::::::|::/::::|::::/:::::::::::/
    |   /:::::::::::::::::::::::::::::::::|:::::::::::::::::::::O::|::|::::::|:::::::::::::::/

440 :132人目の素数さん:2012/03/27(火) 20:00:22.88
          __ノ)-'´ ̄ ̄`ー- 、_
        , '´  _. -‐'''"二ニニ=-`ヽ、
      /   /:::::; -‐''"        `ーノ
     /   /:::::/           \
     /    /::::::/          | | |  |
     |   |:::::/ /     |  | | | |  |
      |   |::/ / / |  | ||  | | ,ハ .| ,ハ|
      |   |/ / / /| ,ハノ| /|ノレ,ニ|ル' 
     |   |  | / / レ',二、レ′ ,ィイ|゙/   私は只の数ヲタなんかとは付き合わないわ。
.     |   \ ∠イ  ,イイ|    ,`-' |      頭が良くて数学が出来てかっこいい人。それが必要条件よ。
     |     l^,人|  ` `-'     ゝ  |        さらに Ann.of Math に論文書けば十分条件にもなるわよ。
      |      ` -'\       ー'  人          一番嫌いなのは論文数を増やすためにくだらない論文を書いて
    |        /(l     __/  ヽ、           良い論文の出版を遅らせるお馬鹿な人。
     |       (:::::`‐-、__  |::::`、     ヒニニヽ、         あなたの論文が Ann of Math に accept される確率は?
    |      / `‐-、::::::::::`‐-、::::\   /,ニニ、\            それとも最近は Inv. Math. の方が上かしら?
   |      |::::::::::::::::::|` -、:::::::,ヘ ̄|'、  ヒニ二、 \
.   |      /::::::::::::::::::|::::::::\/:::O`、::\   | '、   \
   |      /:::::::::::::::::::/:::::::::::::::::::::::::::::'、::::\ノ  ヽ、  |
  |      |:::::/:::::::::/:::::::::::::::::::::::::::::::::::'、',::::'、  /:\__/‐、
  |      |/:::::::::::/::::::::::::::::::::::::::::::::::O::| '、::| く::::::::::::: ̄|
   |     /_..-'´ ̄`ー-、:::::::::::::::::::::::::::::::::::|/:/`‐'::\;;;;;;;_|
   |    |/::::::::::::::::::::::\:::::::::::::::::::::::::::::|::/::::|::::/:::::::::::/
    |   /:::::::::::::::::::::::::::::::::|:::::::::::::::::::::O::|::|::::::|:::::::::::::::/

441 :132人目の素数さん:2012/03/27(火) 23:36:28.28
          __ノ)-'´ ̄ ̄`ー- 、_
        , '´  _. -‐'''"二ニニ=-`ヽ、
      /   /:::::; -‐''"        `ーノ
     /   /:::::/           \
     /    /::::::/          | | |  |
     |   |:::::/ /     |  | | | |  |
      |   |::/ / / |  | ||  | | ,ハ .| ,ハ|
      |   |/ / / /| ,ハノ| /|ノレ,ニ|ル' 
     |   |  | / / レ',二、レ′ ,ィイ|゙/   私は只の数ヲタなんかとは付き合わないわ。
.     |   \ ∠イ  ,イイ|    ,`-' |      頭が良くて数学が出来てかっこいい人。それが必要条件よ。
     |     l^,人|  ` `-'     ゝ  |        さらに Ann.of Math に論文書けば十分条件にもなるわよ。
      |      ` -'\       ー'  人          一番嫌いなのは論文数を増やすためにくだらない論文を書いて
    |        /(l     __/  ヽ、           良い論文の出版を遅らせるお馬鹿な人。
     |       (:::::`‐-、__  |::::`、     ヒニニヽ、         あなたの論文が Ann of Math に accept される確率は?
    |      / `‐-、::::::::::`‐-、::::\   /,ニニ、\            それとも最近は Inv. Math. の方が上かしら?
   |      |::::::::::::::::::|` -、:::::::,ヘ ̄|'、  ヒニ二、 \
.   |      /::::::::::::::::::|::::::::\/:::O`、::\   | '、   \
   |      /:::::::::::::::::::/:::::::::::::::::::::::::::::'、::::\ノ  ヽ、  |
  |      |:::::/:::::::::/:::::::::::::::::::::::::::::::::::'、',::::'、  /:\__/‐、
  |      |/:::::::::::/::::::::::::::::::::::::::::::::::O::| '、::| く::::::::::::: ̄|
   |     /_..-'´ ̄`ー-、:::::::::::::::::::::::::::::::::::|/:/`‐'::\;;;;;;;_|
   |    |/::::::::::::::::::::::\:::::::::::::::::::::::::::::|::/::::|::::/:::::::::::/
    |   /:::::::::::::::::::::::::::::::::|:::::::::::::::::::::O::|::|::::::|:::::::::::::::/

442 :132人目の素数さん:2012/03/29(木) 01:36:02.65
          __ノ)-'´ ̄ ̄`ー- 、_
        , '´  _. -‐'''"二ニニ=-`ヽ、
      /   /:::::; -‐''"        `ーノ
     /   /:::::/           \
     /    /::::::/          | | |  |
     |   |:::::/ /     |  | | | |  |
      |   |::/ / / |  | ||  | | ,ハ .| ,ハ|
      |   |/ / / /| ,ハノ| /|ノレ,ニ|ル' 
     |   |  | / / レ',二、レ′ ,ィイ|゙/   私は只の数ヲタなんかとは付き合わないわ。
.     |   \ ∠イ  ,イイ|    ,`-' |      頭が良くて数学が出来てかっこいい人。それが必要条件よ。
     |     l^,人|  ` `-'     ゝ  |        さらに Ann.of Math に論文書けば十分条件にもなるわよ。
      |      ` -'\       ー'  人          一番嫌いなのは論文数を増やすためにくだらない論文を書いて
    |        /(l     __/  ヽ、           良い論文の出版を遅らせるお馬鹿な人。
     |       (:::::`‐-、__  |::::`、     ヒニニヽ、         あなたの論文が Ann of Math に accept される確率は?
    |      / `‐-、::::::::::`‐-、::::\   /,ニニ、\            それとも最近は Inv. Math. の方が上かしら?
   |      |::::::::::::::::::|` -、:::::::,ヘ ̄|'、  ヒニ二、 \
.   |      /::::::::::::::::::|::::::::\/:::O`、::\   | '、   \
   |      /:::::::::::::::::::/:::::::::::::::::::::::::::::'、::::\ノ  ヽ、  |
  |      |:::::/:::::::::/:::::::::::::::::::::::::::::::::::'、',::::'、  /:\__/‐、
  |      |/:::::::::::/::::::::::::::::::::::::::::::::::O::| '、::| く::::::::::::: ̄|
   |     /_..-'´ ̄`ー-、:::::::::::::::::::::::::::::::::::|/:/`‐'::\;;;;;;;_|
   |    |/::::::::::::::::::::::\:::::::::::::::::::::::::::::|::/::::|::::/:::::::::::/
    |   /:::::::::::::::::::::::::::::::::|:::::::::::::::::::::O::|::|::::::|:::::::::::::::/

443 :132人目の素数さん:2012/03/30(金) 22:40:29.56
R 2.15.0 is released
http://www.r-bloggers.com/r-2-15-0-is-released/


444 :132人目の素数さん:2012/04/03(火) 21:15:56.45
          __ノ)-'´ ̄ ̄`ー- 、_
        , '´  _. -‐'''"二ニニ=-`ヽ、
      /   /:::::; -‐''"        `ーノ
     /   /:::::/           \
     /    /::::::/          | | |  |
     |   |:::::/ /     |  | | | |  |
      |   |::/ / / |  | ||  | | ,ハ .| ,ハ|
      |   |/ / / /| ,ハノ| /|ノレ,ニ|ル' 
     |   |  | / / レ',二、レ′ ,ィイ|゙/   私は只の数ヲタなんかとは付き合わないわ。
.     |   \ ∠イ  ,イイ|    ,`-' |      頭が良くて数学が出来てかっこいい人。それが必要条件よ。
     |     l^,人|  ` `-'     ゝ  |        さらに Ann.of Math に論文書けば十分条件にもなるわよ。
      |      ` -'\       ー'  人          一番嫌いなのは論文数を増やすためにくだらない論文を書いて
    |        /(l     __/  ヽ、           良い論文の出版を遅らせるお馬鹿な人。
     |       (:::::`‐-、__  |::::`、     ヒニニヽ、         あなたの論文が Ann of Math に accept される確率は?
    |      / `‐-、::::::::::`‐-、::::\   /,ニニ、\            それとも最近は Inv. Math. の方が上かしら?
   |      |::::::::::::::::::|` -、:::::::,ヘ ̄|'、  ヒニ二、 \
.   |      /::::::::::::::::::|::::::::\/:::O`、::\   | '、   \
   |      /:::::::::::::::::::/:::::::::::::::::::::::::::::'、::::\ノ  ヽ、  |
  |      |:::::/:::::::::/:::::::::::::::::::::::::::::::::::'、',::::'、  /:\__/‐、
  |      |/:::::::::::/::::::::::::::::::::::::::::::::::O::| '、::| く::::::::::::: ̄|
   |     /_..-'´ ̄`ー-、:::::::::::::::::::::::::::::::::::|/:/`‐'::\;;;;;;;_|
   |    |/::::::::::::::::::::::\:::::::::::::::::::::::::::::|::/::::|::::/:::::::::::/
    |   /:::::::::::::::::::::::::::::::::|:::::::::::::::::::::O::|::|::::::|:::::::::::::::/

445 :132人目の素数さん:2012/04/06(金) 18:58:58.10
チラ裏
Meadow 2.10(Emacs 21.4.1) + R 2.15.0 で、
ESS 5.14 → ESS 12.04 にしてみたら、
symbol's function definition is void と言われてしまい、
元に戻した今日の夕暮れ。


446 :132人目の素数さん:2012/04/10(火) 15:45:27.97
ttp://cran.r-project.org/bin/linux/ubuntu/
Preciseはまだ来ないね。4月26日以降になるのかな

447 :132人目の素数さん:2012/04/14(土) 11:43:41.70
R2.15.0 って、なんか目玉機能あります?


448 :132人目の素数さん:2012/04/20(金) 23:36:06.27
ソースコードが1つのファイルで2万行ぐらいになってしまったので
複数のファイルに分割したいのですがやり方がわかりません。
助けてください

449 :132人目の素数さん:2012/04/20(金) 23:38:20.91
          __ノ)-'´ ̄ ̄`ー- 、_
        , '´  _. -‐'''"二ニニ=-`ヽ、
      /   /:::::; -‐''"        `ーノ
     /   /:::::/           \
     /    /::::::/          | | |  |
     |   |:::::/ /     |  | | | |  |
      |   |::/ / / |  | ||  | | ,ハ .| ,ハ|
      |   |/ / / /| ,ハノ| /|ノレ,ニ|ル' 
     |   |  | / / レ',二、レ′ ,ィイ|゙/   私は只の数ヲタなんかとは付き合わないわ。
.     |   \ ∠イ  ,イイ|    ,`-' |      頭が良くて数学が出来てかっこいい人。それが必要条件よ。
     |     l^,人|  ` `-'     ゝ  |        さらに Ann.of Math に論文書けば十分条件にもなるわよ。
      |      ` -'\       ー'  人          一番嫌いなのは論文数を増やすためにくだらない論文を書いて
    |        /(l     __/  ヽ、           良い論文の出版を遅らせるお馬鹿な人。
     |       (:::::`‐-、__  |::::`、     ヒニニヽ、         あなたの論文が Ann of Math に accept される確率は?
    |      / `‐-、::::::::::`‐-、::::\   /,ニニ、\            それとも最近は Inv. Math. の方が上かしら?
   |      |::::::::::::::::::|` -、:::::::,ヘ ̄|'、  ヒニ二、 \
.   |      /::::::::::::::::::|::::::::\/:::O`、::\   | '、   \
   |      /:::::::::::::::::::/:::::::::::::::::::::::::::::'、::::\ノ  ヽ、  |
  |      |:::::/:::::::::/:::::::::::::::::::::::::::::::::::'、',::::'、  /:\__/‐、
  |      |/:::::::::::/::::::::::::::::::::::::::::::::::O::| '、::| く::::::::::::: ̄|
   |     /_..-'´ ̄`ー-、:::::::::::::::::::::::::::::::::::|/:/`‐'::\;;;;;;;_|
   |    |/::::::::::::::::::::::\:::::::::::::::::::::::::::::|::/::::|::::/:::::::::::/
    |   /:::::::::::::::::::::::::::::::::|:::::::::::::::::::::O::|::|::::::|:::::::::::::::/

450 :132人目の素数さん:2012/04/21(土) 07:52:14.18
          __ノ)-'´ ̄ ̄`ー- 、_
        , '´  _. -‐'''"二ニニ=-`ヽ、
      /   /:::::; -‐''"        `ーノ
     /   /:::::/           \
     /    /::::::/          | | |  |
     |   |:::::/ /     |  | | | |  |
      |   |::/ / / |  | ||  | | ,ハ .| ,ハ|
      |   |/ / / /| ,ハノ| /|ノレ,ニ|ル' 
     |   |  | / / レ',二、レ′ ,ィイ|゙/   私は只の数ヲタなんかとは付き合わないわ。
.     |   \ ∠イ  ,イイ|    ,`-' |      頭が良くて数学が出来てかっこいい人。それが必要条件よ。
     |     l^,人|  ` `-'     ゝ  |        さらに Ann.of Math に論文書けば十分条件にもなるわよ。
      |      ` -'\       ー'  人          一番嫌いなのは論文数を増やすためにくだらない論文を書いて
    |        /(l     __/  ヽ、           良い論文の出版を遅らせるお馬鹿な人。
     |       (:::::`‐-、__  |::::`、     ヒニニヽ、         あなたの論文が Ann of Math に accept される確率は?
    |      / `‐-、::::::::::`‐-、::::\   /,ニニ、\            それとも最近は Inv. Math. の方が上かしら?
   |      |::::::::::::::::::|` -、:::::::,ヘ ̄|'、  ヒニ二、 \
.   |      /::::::::::::::::::|::::::::\/:::O`、::\   | '、   \
   |      /:::::::::::::::::::/:::::::::::::::::::::::::::::'、::::\ノ  ヽ、  |
  |      |:::::/:::::::::/:::::::::::::::::::::::::::::::::::'、',::::'、  /:\__/‐、
  |      |/:::::::::::/::::::::::::::::::::::::::::::::::O::| '、::| く::::::::::::: ̄|
   |     /_..-'´ ̄`ー-、:::::::::::::::::::::::::::::::::::|/:/`‐'::\;;;;;;;_|
   |    |/::::::::::::::::::::::\:::::::::::::::::::::::::::::|::/::::|::::/:::::::::::/
    |   /:::::::::::::::::::::::::::::::::|:::::::::::::::::::::O::|::|::::::|:::::::::::::::/

451 :132人目の素数さん:2012/04/21(土) 09:49:45.56
>>448
2万行って何それ、すごい。
そんなにRの専門家なのに、そんなことを悩むとはw
source()を使って階層的にしたら駄目なの?

452 :132人目の素数さん:2012/04/21(土) 16:42:07.10
>>448
むしろ、何の処理をさせたら、2万行になるのか知りたい。


453 :132人目の素数さん:2012/04/21(土) 17:49:35.34
          __ノ)-'´ ̄ ̄`ー- 、_
        , '´  _. -‐'''"二ニニ=-`ヽ、
      /   /:::::; -‐''"        `ーノ
     /   /:::::/           \
     /    /::::::/          | | |  |
     |   |:::::/ /     |  | | | |  |
      |   |::/ / / |  | ||  | | ,ハ .| ,ハ|
      |   |/ / / /| ,ハノ| /|ノレ,ニ|ル' 
     |   |  | / / レ',二、レ′ ,ィイ|゙/   私は只の数ヲタなんかとは付き合わないわ。
.     |   \ ∠イ  ,イイ|    ,`-' |      頭が良くて数学が出来てかっこいい人。それが必要条件よ。
     |     l^,人|  ` `-'     ゝ  |        さらに Ann.of Math に論文書けば十分条件にもなるわよ。
      |      ` -'\       ー'  人          一番嫌いなのは論文数を増やすためにくだらない論文を書いて
    |        /(l     __/  ヽ、           良い論文の出版を遅らせるお馬鹿な人。
     |       (:::::`‐-、__  |::::`、     ヒニニヽ、         あなたの論文が Ann of Math に accept される確率は?
    |      / `‐-、::::::::::`‐-、::::\   /,ニニ、\            それとも最近は Inv. Math. の方が上かしら?
   |      |::::::::::::::::::|` -、:::::::,ヘ ̄|'、  ヒニ二、 \
.   |      /::::::::::::::::::|::::::::\/:::O`、::\   | '、   \
   |      /:::::::::::::::::::/:::::::::::::::::::::::::::::'、::::\ノ  ヽ、  |
  |      |:::::/:::::::::/:::::::::::::::::::::::::::::::::::'、',::::'、  /:\__/‐、
  |      |/:::::::::::/::::::::::::::::::::::::::::::::::O::| '、::| く::::::::::::: ̄|
   |     /_..-'´ ̄`ー-、:::::::::::::::::::::::::::::::::::|/:/`‐'::\;;;;;;;_|
   |    |/::::::::::::::::::::::\:::::::::::::::::::::::::::::|::/::::|::::/:::::::::::/
    |   /:::::::::::::::::::::::::::::::::|:::::::::::::::::::::O::|::|::::::|:::::::::::::::/

454 :132人目の素数さん:2012/04/21(土) 18:59:03.29
>>448
縦書きか

455 :132人目の素数さん:2012/04/24(火) 07:20:26.82
SUBSTR<- function(X,S,E){
if(length(unique(nchar(X)))>1)stop("warning")
if(unique(nchar(X))<max(S,E)|min(S,E)<=0)stop("warning")
temp<-t(sapply(X,function(X){mapply(substr,X,start=S,stop=E)}))
dimnames(temp)<-NULL
temp
}


456 :132人目の素数さん:2012/04/24(火) 07:25:35.41
          __ノ)-'´ ̄ ̄`ー- 、_
        , '´  _. -‐'''"二ニニ=-`ヽ、
      /   /:::::; -‐''"        `ーノ
     /   /:::::/           \
     /    /::::::/          | | |  |
     |   |:::::/ /     |  | | | |  |
      |   |::/ / / |  | ||  | | ,ハ .| ,ハ|
      |   |/ / / /| ,ハノ| /|ノレ,ニ|ル' 
     |   |  | / / レ',二、レ′ ,ィイ|゙/   私は只の数ヲタなんかとは付き合わないわ。
.     |   \ ∠イ  ,イイ|    ,`-' |      頭が良くて数学が出来てかっこいい人。それが必要条件よ。
     |     l^,人|  ` `-'     ゝ  |        さらに Ann.of Math に論文書けば十分条件にもなるわよ。
      |      ` -'\       ー'  人          一番嫌いなのは論文数を増やすためにくだらない論文を書いて
    |        /(l     __/  ヽ、           良い論文の出版を遅らせるお馬鹿な人。
     |       (:::::`‐-、__  |::::`、     ヒニニヽ、         あなたの論文が Ann of Math に accept される確率は?
    |      / `‐-、::::::::::`‐-、::::\   /,ニニ、\            それとも最近は Inv. Math. の方が上かしら?
   |      |::::::::::::::::::|` -、:::::::,ヘ ̄|'、  ヒニ二、 \
.   |      /::::::::::::::::::|::::::::\/:::O`、::\   | '、   \
   |      /:::::::::::::::::::/:::::::::::::::::::::::::::::'、::::\ノ  ヽ、  |
  |      |:::::/:::::::::/:::::::::::::::::::::::::::::::::::'、',::::'、  /:\__/‐、
  |      |/:::::::::::/::::::::::::::::::::::::::::::::::O::| '、::| く::::::::::::: ̄|
   |     /_..-'´ ̄`ー-、:::::::::::::::::::::::::::::::::::|/:/`‐'::\;;;;;;;_|
   |    |/::::::::::::::::::::::\:::::::::::::::::::::::::::::|::/::::|::::/:::::::::::/
    |   /:::::::::::::::::::::::::::::::::|:::::::::::::::::::::O::|::|::::::|:::::::::::::::/

457 :132人目の素数さん:2012/04/24(火) 10:40:39.43
>>455
突然どうしたの?

オレならecho X | cut -cS-Eをsystem()でやっちゃうな。

458 :132人目の素数さん:2012/04/24(火) 12:16:39.44
barplotの質問です http://cran.md.tsukuba.ac.jp/bin/windows/base/ を使っています。
100個の文字列(labels)と数値(num)を棒グラフに書き出したいのですが
barplot(num, names.arg=labels)
いざ書き出すと文字列名がすべて表示されません
理想的にはhttp://commons.wikimedia.org/wiki/File:English_letter_frequency_(alphabetic).svg
このように数値と文字列をすべて表示させたいのですが、どうすればよいでしょうか。

また、numでソートした棒グラフとlabelsでソートした棒グラフをそれぞれ作成するには
どうすればいいでしょうか。
他のプログラミングでいうとろこの、
ハッシュ構造に文字列と数値を格納してキーと値でそれぞれソートするという手順がよく分かりません。

459 :132人目の素数さん:2012/04/24(火) 12:32:11.32
>>458
グラフのサイズを多きすくすれば細かい文字も入るよ。
> pdf(file="test.pdf",width=50,height=10)
> barplot(round(runif(100),1),names.arg=sapply(1:100,function(x){sample(LETTERS,1)}))
> dev.off()
ソートは次の例を参考にしてくれ。
> (a <- data.frame(v=round(rnorm(5),1),n=sample(LETTERS,5)))
v n
1 -0.1 F
2 -0.4 W
3 1.6 M
4 -0.2 R
5 -0.5 V
> a[order(a$v),]
v n
5 -0.5 V
2 -0.4 W
4 -0.2 R
1 -0.1 F
3 1.6 M
> a[order(a$n),]
v n
1 -0.1 F
3 1.6 M
4 -0.2 R
5 -0.5 V
2 -0.4 W

460 :459:2012/04/24(火) 12:37:45.20
>>459
barplot()は
> barplot(round(runif(100),1),names.arg=sample(LETTERS,100,replace=TRUE))
に差し替え。最初はアルファベット2文字で書こうとしたのでsapply()が入った。


461 :132人目の素数さん:2012/04/24(火) 22:47:48.17
          __ノ)-'´ ̄ ̄`ー- 、_
        , '´  _. -‐'''"二ニニ=-`ヽ、
      /   /:::::; -‐''"        `ーノ
     /   /:::::/           \
     /    /::::::/          | | |  |
     |   |:::::/ /     |  | | | |  |
      |   |::/ / / |  | ||  | | ,ハ .| ,ハ|
      |   |/ / / /| ,ハノ| /|ノレ,ニ|ル' 
     |   |  | / / レ',二、レ′ ,ィイ|゙/   私は只の数ヲタなんかとは付き合わないわ。
.     |   \ ∠イ  ,イイ|    ,`-' |      頭が良くて数学が出来てかっこいい人。それが必要条件よ。
     |     l^,人|  ` `-'     ゝ  |        さらに Ann.of Math に論文書けば十分条件にもなるわよ。
      |      ` -'\       ー'  人          一番嫌いなのは論文数を増やすためにくだらない論文を書いて
    |        /(l     __/  ヽ、           良い論文の出版を遅らせるお馬鹿な人。
     |       (:::::`‐-、__  |::::`、     ヒニニヽ、         あなたの論文が Ann of Math に accept される確率は?
    |      / `‐-、::::::::::`‐-、::::\   /,ニニ、\            それとも最近は Inv. Math. の方が上かしら?
   |      |::::::::::::::::::|` -、:::::::,ヘ ̄|'、  ヒニ二、 \
.   |      /::::::::::::::::::|::::::::\/:::O`、::\   | '、   \
   |      /:::::::::::::::::::/:::::::::::::::::::::::::::::'、::::\ノ  ヽ、  |
  |      |:::::/:::::::::/:::::::::::::::::::::::::::::::::::'、',::::'、  /:\__/‐、
  |      |/:::::::::::/::::::::::::::::::::::::::::::::::O::| '、::| く::::::::::::: ̄|
   |     /_..-'´ ̄`ー-、:::::::::::::::::::::::::::::::::::|/:/`‐'::\;;;;;;;_|
   |    |/::::::::::::::::::::::\:::::::::::::::::::::::::::::|::/::::|::::/:::::::::::/
    |   /:::::::::::::::::::::::::::::::::|:::::::::::::::::::::O::|::|::::::|:::::::::::::::/

462 :132人目の素数さん:2012/04/24(火) 23:01:21.57
>>459-460
ありがとうございます。ばっちりできました。

463 :132人目の素数さん:2012/04/24(火) 23:52:37.90
http://www.is.titech.ac.jp/~mase/R.html
R の公式マニュアル5種類の和訳

このサイトが見れないです

464 :459:2012/04/25(水) 00:40:38.22
>>463
10年以上前の情報だぞ。
書店で最新の本を買えよ

465 :132人目の素数さん:2012/04/25(水) 00:59:05.13
>>464
他にマニュアルの和訳したサイトってないんですか?

466 :132人目の素数さん:2012/04/25(水) 14:04:32.25
>>465
私の知る限りない。
現状では、マニュアルを読む気概がある人=英語でも大丈夫、という空気になっていて、
初心者や英語が苦手な人は、マニュアルを咀嚼した和書を購入すると思う。

467 :132人目の素数さん:2012/04/25(水) 21:29:19.12
>>466
ありがとうございます

468 :132人目の素数さん:2012/04/27(金) 03:23:30.97
sample(c("T", "F"), 1000, replace = TRUE)
こうして作成したベルトルからTの個数を数えあげるには
どうすればよいでしょうか
for(i in 1:1000){}として一つ一つ値を見るしかないのでしょうか。

469 :132人目の素数さん:2012/04/27(金) 06:14:45.59
>>468
sum(sample(c("T", "F"), 1000, replace = TRUE))

470 :132人目の素数さん:2012/04/27(金) 06:17:19.41
c("T","F")だから、
sample(c("T", "F"), 1000, replace = TRUE)-> x
sum(x=="T")
でした。

471 :132人目の素数さん:2012/04/27(金) 11:05:43.29
>>468
長年のR利用経験から、おっさんが助言する。
"T"や"F"の文字列の使用は、トラブルの原因になる場合があるので、やめておけ。
なかなか気が付きにくいバクの原因になるから、
徹夜でトラブルシューティングするはめになるぞ。
"t"や"f"も使うな。
今回はsample(c("T", "F"), 1000, replace = TRUE)とする代わりに、
sample(c(T, F), 1000, replace = TRUE)とした方がよい。
"T"の代わりにTを、"F"の代わりにFを使うんだ。

472 :132人目の素数さん:2012/04/27(金) 14:26:57.77
x<-c(2, 3, 5, 4, 7, 9, 10, 2, 3, 4, 5)
z<-c(3, 5, 9, 7, 13, 17, 19, 3, 5, 7, 9)
y<-c(4, 6, 10, 8, 14, 18, 20, 4, 6, 8, 10)
このx,y,zをもとに
"要素1" xのベクトル
"要素2" yのベクトル
"要素3" zのベクトル
このような表形式で結果をまとめるにはどうすればいいですか?
ベクトルの操作だけでは全体の整形ができないようなのでわかりませんでした

473 :132人目の素数さん:2012/04/27(金) 14:31:54.94
>>472
「表形式で結果をまとめる」の意味が不明瞭。
ftable()案件なのか、rbind(x,y,z)やcbind(x,y,z)でよいのか、
それとも論文にするの表(TeX)にしたいのか、
分かるように伝えてくれ。

474 :473:2012/04/27(金) 14:36:29.43
>>472
>"要素1" xのベクトル
>"要素2" yのベクトル
>"要素3" zのベクトル
これって、例えば、次のような形なんだろうか。
> X <- rbind(x,y,z)
> colnames(X) <- month.name[1:ncol(X)]
> X
January February March April May June July August September October November
x 2 3 5 4 7 9 10 2 3 4 5
y 4 6 10 8 14 18 20 4 6 8 10
z 3 5 9 7 13 17 19 3 5 7 9



475 :132人目の素数さん:2012/04/27(金) 15:01:57.09
x<-c(2, 3, 5, 4, 7, 9, 10, 2, 3, 4, 5)
z<-c(3, 5, 9, 7, 13, 17, 19, 3, 5, 7, 9)
y<-c(4, 6, 10, 8, 14, 18, 20, 4, 6, 8, 10)

f = c("要素1","要素2","要素3")
cbind(f,data.frame(rbind(x,y,z)))

こういうこと??



476 :132人目の素数さん:2012/04/27(金) 16:25:40.38
説明不足ですみません
tex形式ではなくプレーンテキストで結果を見ることができれば十分です
>>473-475のrbindやcbindで大丈夫そうです。ありがとうございます。
ただ欲を言えば[,1]のような見出し部分を取り除ければいいのですが、可能でしょうか。

477 :132人目の素数さん:2012/04/27(金) 20:26:45.89
?write.table

478 :132人目の素数さん:2012/04/27(金) 21:07:02.32
>>476
真に必要がないのに、[, 1]などを削るのはいかがかと思うが、
次のようにすればどうだろう。
> x<-c(2, 3, 5, 4, 7, 9, 10, 2, 3, 4, 5)
> z<-c(3, 5, 9, 7, 13, 17, 19, 3, 5, 7, 9)
> y<-c(4, 6, 10, 8, 14, 18, 20, 4, 6, 8, 10)
> hoge <- function(x){
+ n <- nrow(x)
+ l <- rownames(x)
+ for(i in 1:n){
+ cat(paste(l[i], "\t"), fill = FALSE)
+ cat(x[i, ], fill = TRUE)
+ }
+ }
> hoge(rbind(x,y,z))
x 2 3 5 4 7 9 10 2 3 4 5
y 4 6 10 8 14 18 20 4 6 8 10
z 3 5 9 7 13 17 19 3 5 7 9

479 :132人目の素数さん:2012/04/27(金) 23:02:47.19
>>477-478
ありがとうございます。ここまで対応して下さり感謝します。

480 :132人目の素数さん:2012/04/28(土) 02:07:58.56
rを外部から操作する環境設定について質問します
gnupack http://gnupack.sourceforge.jp/docs/latest/UsersGuide.htmlのemacsを使って居ます
ESS (http://www.okada.jp.org/RWiki/?ESS)経由でRを利用しているのですが、
割合<-1/3
と書くと
「構文解析中に不正なマルチバイト文字列がありました」
とエラーになります
RGuiのR Consoleからはそういうエラーはでません。

割合の"合"が原因のようで、ESSのやりとりではsjisとして文字コードが解釈されてしまうため、R側が適切に認識できないような気がします。
emacsからRをutf-8で操作できれば問題は解消すると思うのですが、どのように設定することになりますか。

481 :132人目の素数さん:2012/04/28(土) 05:34:39.27
presiceきたー
ttp://cran.r-project.org/bin/linux/ubuntu/

482 :132人目の素数さん:2012/04/28(土) 08:45:12.17
>>480
お客さん、Emacsは初めて?
ttp://tanuzou.com/nuzou/wiki/index.php?emacs%A4%C7%A4%CE%CA%B8%BB%FA%A5%B3%A1%BC%A5%C9%CA%D1%B9%B9

483 :480:2012/04/28(土) 09:53:19.07
>>482
いえ、はじめてではないです
set-buffer-process-coding-systemで
outputをutf-8にすれば入力は問題無くなるのですが、
今度は出力がおかしくなります
例えば、「 作業スペースを保存しますか? [y/n/c]: 」というメッセージは
?X y [ X ? ? ? [y/n/c]:
こうなってしまいます
set-buffer-process-coding-systemのinputをutf-8にしてもそうなったままです


484 :132人目の素数さん:2012/04/28(土) 10:46:30.19
c <- 3:13
f <- c(1, 12, 19, 6, 15, 10, 2, 18, 15, 9)

cを階級値、fを度数としてヒストグラムを書きたいのですが、
barplot(f,names.arg=c,space=0)
こうしてヒストグラムを書いたときに0,5,10,15の横線を左から右端まで引く方法はありますか。

またc("101-120", "121-140", "141-160"...)というように、
階級値ではなく階級境界値が与えられたとき、
同じようにヒストグラムを書く方法があれば知りたいです。
その場合にstrsplit()を使って文字列を分割するということは考えたのですが、
その先がわかりませんでした。

485 :132人目の素数さん:2012/04/28(土) 11:02:42.35
>>484
前半の方は無理じゃないかな

486 :132人目の素数さん:2012/04/28(土) 12:49:02.44
c <- 3:13
f <- c(1, 12, 19, 6, 15, 10, 2, 18, 15, 9, 1)
x <- c()

for(i in 1:length(f)){
x<-append(x,rep(c[i],f[i]))
}
dx <- data.frame(x=x)

library(ggplot2)
ggplot(dx, aes(x))+ geom_bar(binwidth=1) + geom_hline(yintercept=seq(0,15, by=5))



487 :132人目の素数さん:2012/04/28(土) 13:02:37.47
>>483
これで直るんじゃないかな。
http://rmecab.jp/wiki/index.php?R%A4%CE%C8%F7%CB%BA%CF%BF#v2acbd2d
Rの側では何も設定しなくて大丈夫だから、設定はNTEmacsスレで聞いた方がいいかと。

488 :132人目の素数さん:2012/04/28(土) 13:13:33.53
>>484
abline(h = seq(0, 15 , 5))

ってこと。ちなみにcは関数名なので、代入するとおかしくならない?

489 :132人目の素数さん:2012/04/28(土) 13:21:10.49
c でも t でも変数名、ベクトル名に使えるけど、紛らわしいからやらないほうが吉

490 :374:2012/04/28(土) 19:16:35.57
>>484 下の方
どうせ、「なんちゃって」ヒストグラムなんだから、そのままでもいいじゃん。ダメなの?
barplot(f, names.arg=c("101-120", "121-140", "141-160"...), space=0)


それだとあんまりなので、こんな感じ?
f <- c(1, 12, 19, 6, 15, 10, 2, 18, 15, 9)
a <- paste(seq(from = 101, by = 20, along.with = f), sep="-", seq(from = 120, by = 20, along.with = f))
# => [1] "101-120" "121-140" "141-160" "161-180" "181-200" "201-220" "221-240" "241-260" "261-280" "281-300"
c <- sapply(a, function(x) as.numeric(unlist(strsplit(x, "-")))[2])
dist <- c()
for (i in 1:length(c)) {dist <- c(dist, rep(c[i]-1, f[i]))}
hist(dist)

491 :132人目の素数さん:2012/04/28(土) 20:38:01.56
放大でRで統計やってたね

492 :132人目の素数さん:2012/04/28(土) 23:15:54.50
放送大学 授業科目案内 データからの知識発見('12)

http://www.ouj.ac.jp/hp/kamoku/H24/kyouyou/A/sangyo/s_1554522.html
これかな
これぐらいの内容をざっと教えているのはいいね

493 :132人目の素数さん:2012/04/29(日) 11:21:12.19
binary <- c(T,F)
binaries <- data.frame("1st"=binary)
cbind(binaries,"2nd"=binary,"3rd"=binary)

X1st 2nd 3rd
1 TRUE TRUE TRUE
2 FALSE FALSE FALSE

このデータの順列すべてつまり2^3個分を表示したいのですが、
どうすればいいですか。
TRUE,TRUE,TRUE
TRUE,TRUE,FALSE
TRUE,FALSE,TRUE
TRUE,FALSE,FALSE
こんな風にです

494 :132人目の素数さん:2012/04/29(日) 15:04:56.43
>>493

library(gtools)
permutations(2, 3, c(T, F), repeats.allowed=TRUE)[8:1,]


495 :132人目の素数さん:2012/04/30(月) 00:13:16.11
>>494
ありがとうございます!まさにそれです。
permutation、ずばり順列そのもののコマンドがあるのですか。
勉強になりました。

496 :132人目の素数さん:2012/05/03(木) 20:30:15.24
          __ノ)-'´ ̄ ̄`ー- 、_
        , '´  _. -‐'''"二ニニ=-`ヽ、
      /   /:::::; -‐''"        `ーノ
     /   /:::::/           \
     /    /::::::/          | | |  |
     |   |:::::/ /     |  | | | |  |
      |   |::/ / / |  | ||  | | ,ハ .| ,ハ|
      |   |/ / / /| ,ハノ| /|ノレ,ニ|ル' 
     |   |  | / / レ',二、レ′ ,ィイ|゙/   私は只の数ヲタなんかとは付き合わないわ。
.     |   \ ∠イ  ,イイ|    ,`-' |      頭が良くて数学が出来てかっこいい人。それが必要条件よ。
     |     l^,人|  ` `-'     ゝ  |        さらに Ann.of Math に論文書けば十分条件にもなるわよ。
      |      ` -'\       ー'  人          一番嫌いなのは論文数を増やすためにくだらない論文を書いて
    |        /(l     __/  ヽ、           良い論文の出版を遅らせるお馬鹿な人。
     |       (:::::`‐-、__  |::::`、     ヒニニヽ、         あなたの論文が Ann of Math に accept される確率は?
    |      / `‐-、::::::::::`‐-、::::\   /,ニニ、\            それとも最近は Inv. Math. の方が上かしら?
   |      |::::::::::::::::::|` -、:::::::,ヘ ̄|'、  ヒニ二、 \
.   |      /::::::::::::::::::|::::::::\/:::O`、::\   | '、   \
   |      /:::::::::::::::::::/:::::::::::::::::::::::::::::'、::::\ノ  ヽ、  |
  |      |:::::/:::::::::/:::::::::::::::::::::::::::::::::::'、',::::'、  /:\__/‐、
  |      |/:::::::::::/::::::::::::::::::::::::::::::::::O::| '、::| く::::::::::::: ̄|
   |     /_..-'´ ̄`ー-、:::::::::::::::::::::::::::::::::::|/:/`‐'::\;;;;;;;_|
   |    |/::::::::::::::::::::::\:::::::::::::::::::::::::::::|::/::::|::::/:::::::::::/
    |   /:::::::::::::::::::::::::::::::::|:::::::::::::::::::::O::|::|::::::|:::::::::::::::/

497 :132人目の素数さん:2012/05/05(土) 22:45:04.63
          __ノ)-'´ ̄ ̄`ー- 、_
        , '´  _. -‐'''"二ニニ=-`ヽ、
      /   /:::::; -‐''"        `ーノ
     /   /:::::/           \
     /    /::::::/          | | |  |
     |   |:::::/ /     |  | | | |  |
      |   |::/ / / |  | ||  | | ,ハ .| ,ハ|
      |   |/ / / /| ,ハノ| /|ノレ,ニ|ル' 
     |   |  | / / レ',二、レ′ ,ィイ|゙/   私は只の数ヲタなんかとは付き合わないわ。
.     |   \ ∠イ  ,イイ|    ,`-' |      頭が良くて数学が出来てかっこいい人。それが必要条件よ。
     |     l^,人|  ` `-'     ゝ  |        さらに Ann.of Math に論文書けば十分条件にもなるわよ。
      |      ` -'\       ー'  人          一番嫌いなのは論文数を増やすためにくだらない論文を書いて
    |        /(l     __/  ヽ、           良い論文の出版を遅らせるお馬鹿な人。
     |       (:::::`‐-、__  |::::`、     ヒニニヽ、         あなたの論文が Ann of Math に accept される確率は?
    |      / `‐-、::::::::::`‐-、::::\   /,ニニ、\            それとも最近は Inv. Math. の方が上かしら?
   |      |::::::::::::::::::|` -、:::::::,ヘ ̄|'、  ヒニ二、 \
.   |      /::::::::::::::::::|::::::::\/:::O`、::\   | '、   \
   |      /:::::::::::::::::::/:::::::::::::::::::::::::::::'、::::\ノ  ヽ、  |
  |      |:::::/:::::::::/:::::::::::::::::::::::::::::::::::'、',::::'、  /:\__/‐、
  |      |/:::::::::::/::::::::::::::::::::::::::::::::::O::| '、::| く::::::::::::: ̄|
   |     /_..-'´ ̄`ー-、:::::::::::::::::::::::::::::::::::|/:/`‐'::\;;;;;;;_|
   |    |/::::::::::::::::::::::\:::::::::::::::::::::::::::::|::/::::|::::/:::::::::::/
    |   /:::::::::::::::::::::::::::::::::|:::::::::::::::::::::O::|::|::::::|:::::::::::::::/

498 :132人目の素数さん:2012/05/06(日) 13:20:53.64
          __ノ)-'´ ̄ ̄`ー- 、_
        , '´  _. -‐'''"二ニニ=-`ヽ、
      /   /:::::; -‐''"        `ーノ
     /   /:::::/           \
     /    /::::::/          | | |  |
     |   |:::::/ /     |  | | | |  |
      |   |::/ / / |  | ||  | | ,ハ .| ,ハ|
      |   |/ / / /| ,ハノ| /|ノレ,ニ|ル' 
     |   |  | / / レ',二、レ′ ,ィイ|゙/   私は只の数ヲタなんかとは付き合わないわ。
.     |   \ ∠イ  ,イイ|    ,`-' |      頭が良くて数学が出来てかっこいい人。それが必要条件よ。
     |     l^,人|  ` `-'     ゝ  |        さらに Ann.of Math に論文書けば十分条件にもなるわよ。
      |      ` -'\       ー'  人          一番嫌いなのは論文数を増やすためにくだらない論文を書いて
    |        /(l     __/  ヽ、           良い論文の出版を遅らせるお馬鹿な人。
     |       (:::::`‐-、__  |::::`、     ヒニニヽ、         あなたの論文が Ann of Math に accept される確率は?
    |      / `‐-、::::::::::`‐-、::::\   /,ニニ、\            それとも最近は Inv. Math. の方が上かしら?
   |      |::::::::::::::::::|` -、:::::::,ヘ ̄|'、  ヒニ二、 \
.   |      /::::::::::::::::::|::::::::\/:::O`、::\   | '、   \
   |      /:::::::::::::::::::/:::::::::::::::::::::::::::::'、::::\ノ  ヽ、  |
  |      |:::::/:::::::::/:::::::::::::::::::::::::::::::::::'、',::::'、  /:\__/‐、
  |      |/:::::::::::/::::::::::::::::::::::::::::::::::O::| '、::| く::::::::::::: ̄|
   |     /_..-'´ ̄`ー-、:::::::::::::::::::::::::::::::::::|/:/`‐'::\;;;;;;;_|
   |    |/::::::::::::::::::::::\:::::::::::::::::::::::::::::|::/::::|::::/:::::::::::/
    |   /:::::::::::::::::::::::::::::::::|:::::::::::::::::::::O::|::|::::::|:::::::::::::::/

499 :132人目の素数さん:2012/05/06(日) 16:50:58.01
          __ノ)-'´ ̄ ̄`ー- 、_
        , '´  _. -‐'''"二ニニ=-`ヽ、
      /   /:::::; -‐''"        `ーノ
     /   /:::::/           \
     /    /::::::/          | | |  |
     |   |:::::/ /     |  | | | |  |
      |   |::/ / / |  | ||  | | ,ハ .| ,ハ|
      |   |/ / / /| ,ハノ| /|ノレ,ニ|ル' 
     |   |  | / / レ',二、レ′ ,ィイ|゙/   私は只の数ヲタなんかとは付き合わないわ。
.     |   \ ∠イ  ,イイ|    ,`-' |      頭が良くて数学が出来てかっこいい人。それが必要条件よ。
     |     l^,人|  ` `-'     ゝ  |        さらに Ann.of Math に論文書けば十分条件にもなるわよ。
      |      ` -'\       ー'  人          一番嫌いなのは論文数を増やすためにくだらない論文を書いて
    |        /(l     __/  ヽ、           良い論文の出版を遅らせるお馬鹿な人。
     |       (:::::`‐-、__  |::::`、     ヒニニヽ、         あなたの論文が Ann of Math に accept される確率は?
    |      / `‐-、::::::::::`‐-、::::\   /,ニニ、\            それとも最近は Inv. Math. の方が上かしら?
   |      |::::::::::::::::::|` -、:::::::,ヘ ̄|'、  ヒニ二、 \
.   |      /::::::::::::::::::|::::::::\/:::O`、::\   | '、   \
   |      /:::::::::::::::::::/:::::::::::::::::::::::::::::'、::::\ノ  ヽ、  |
  |      |:::::/:::::::::/:::::::::::::::::::::::::::::::::::'、',::::'、  /:\__/‐、
  |      |/:::::::::::/::::::::::::::::::::::::::::::::::O::| '、::| く::::::::::::: ̄|
   |     /_..-'´ ̄`ー-、:::::::::::::::::::::::::::::::::::|/:/`‐'::\;;;;;;;_|
   |    |/::::::::::::::::::::::\:::::::::::::::::::::::::::::|::/::::|::::/:::::::::::/
    |   /:::::::::::::::::::::::::::::::::|:::::::::::::::::::::O::|::|::::::|:::::::::::::::/

500 :132人目の素数さん:2012/05/08(火) 14:04:54.27
RMeCabこんな感じに文字化けしちゃう

========================
險伜捷
"私は彼女のこ\x82"
========================


SetLocaleしてみた
============================
> Sys.getlocale
LC_COLLATE=Japanese_Japan.932;LC_CTYPE=Japanese_Japan.932;LC_MONETARY=Japanese_Japan.932;LC_NUMERIC=C;LC_TIME=Japanese_Japan.932"

> Sys.setlocale("LC_CTYPE","ja_JP.UTF-8")
警告メッセージ:
In Sys.setlocale("LC_CTYPE", "ja_JP.UTF-8") :
ロケールを "ja_JP.UTF-8" に設定せよとのOS のレポート要求は受け入れられません
==================================

なんかUTF-8に変えられないんだよね
環境はWin7/64bitです

だれか解決策教えて下さいな

501 :132人目の素数さん:2012/05/08(火) 14:06:53.60
        , '´  _. -‐'''"二ニニ=-`ヽ、
      /   /:::::; -‐''"        `ーノ
     /   /:::::/           \
     /    /::::::/          | | |  |
     |   |:::::/ /     |  | | | |  |
      |   |::/ / / |  | ||  | | ,ハ .| ,ハ|
      |   |/ / / /| ,ハノ| /|ノレ,ニ|ル' 
     |   |  | / / レ',二、レ′ ,ィイ|゙/   私は只の数ヲタなんかとは付き合わないわ。
.     |   \ ∠イ  ,イイ|    ,`-' |      頭が良くて数学が出来てかっこいい人。それが必要条件よ。
     |     l^,人|  ` `-'     ゝ  |        さらに Ann.of Math に論文書けば十分条件にもなるわよ。
      |      ` -'\       ー'  人          一番嫌いなのは論文数を増やすためにくだらない論文を書いて
    |        /(l     __/  ヽ、           良い論文の出版を遅らせるお馬鹿な人。
     |       (:::::`‐-、__  |::::`、     ヒニニヽ、         あなたの論文が Ann of Math に accept される確率は?
    |      / `‐-、::::::::::`‐-、::::\   /,ニニ、\            それとも最近は Inv. Math. の方が上かしら?
   |      |::::::::::::::::::|` -、:::::::,ヘ ̄|'、  ヒニ二、 \
.   |      /::::::::::::::::::|::::::::\/:::O`、::\   | '、   \
   |      /:::::::::::::::::::/:::::::::::::::::::::::::::::'、::::\ノ  ヽ、  |
  |      |:::::/:::::::::/:::::::::::::::::::::::::::::::::::'、',::::'、  /:\__/‐、
  |      |/:::::::::::/::::::::::::::::::::::::::::::::::O::| '、::| く::::::::::::: ̄|
   |     /_..-'´ ̄`ー-、:::::::::::::::::::::::::::::::::::|/:/`‐'::\;;;;;;;_|
   |    |/::::::::::::::::::::::\:::::::::::::::::::::::::::::|::/::::|::::/:::::::::::/
    |   /:::::::::::::::::::::::::::::::::|:::::::::::::::::::::O::|::|::::::|:::::::::::::::/

502 :132人目の素数さん:2012/05/08(火) 14:07:16.16
        , '´  _. -‐'''"二ニニ=-`ヽ、
      /   /:::::; -‐''"        `ーノ
     /   /:::::/           \
     /    /::::::/          | | |  |
     |   |:::::/ /     |  | | | |  |
      |   |::/ / / |  | ||  | | ,ハ .| ,ハ|
      |   |/ / / /| ,ハノ| /|ノレ,ニ|ル' 
     |   |  | / / レ',二、レ′ ,ィイ|゙/   私は只の数ヲタなんかとは付き合わないわ。
.     |   \ ∠イ  ,イイ|    ,`-' |      頭が良くて数学が出来てかっこいい人。それが必要条件よ。
     |     l^,人|  ` `-'     ゝ  |        さらに Ann.of Math に論文書けば十分条件にもなるわよ。
      |      ` -'\       ー'  人          一番嫌いなのは論文数を増やすためにくだらない論文を書いて
    |        /(l     __/  ヽ、           良い論文の出版を遅らせるお馬鹿な人。
     |       (:::::`‐-、__  |::::`、     ヒニニヽ、         あなたの論文が Ann of Math に accept される確率は?
    |      / `‐-、::::::::::`‐-、::::\   /,ニニ、\            それとも最近は Inv. Math. の方が上かしら?
   |      |::::::::::::::::::|` -、:::::::,ヘ ̄|'、  ヒニ二、 \
.   |      /::::::::::::::::::|::::::::\/:::O`、::\   | '、   \
   |      /:::::::::::::::::::/:::::::::::::::::::::::::::::'、::::\ノ  ヽ、  |
  |      |:::::/:::::::::/:::::::::::::::::::::::::::::::::::'、',::::'、  /:\__/‐、
  |      |/:::::::::::/::::::::::::::::::::::::::::::::::O::| '、::| く::::::::::::: ̄|
   |     /_..-'´ ̄`ー-、:::::::::::::::::::::::::::::::::::|/:/`‐'::\;;;;;;;_|
   |    |/::::::::::::::::::::::\:::::::::::::::::::::::::::::|::/::::|::::/:::::::::::/
    |   /:::::::::::::::::::::::::::::::::|:::::::::::::::::::::O::|::|::::::|:::::::::::::::/

503 :132人目の素数さん:2012/05/08(火) 14:32:23.18
        , '´  _. -‐'''"二ニニ=-`ヽ、
      /   /:::::; -‐''"        `ーノ
     /   /:::::/           \
     /    /::::::/          | | |  |
     |   |:::::/ /     |  | | | |  |
      |   |::/ / / |  | ||  | | ,ハ .| ,ハ|
      |   |/ / / /| ,ハノ| /|ノレ,ニ|ル' 
     |   |  | / / レ',二、レ′ ,ィイ|゙/   私は只の数ヲタなんかとは付き合わないわ。
.     |   \ ∠イ  ,イイ|    ,`-' |      頭が良くて数学が出来てかっこいい人。それが必要条件よ。
     |     l^,人|  ` `-'     ゝ  |        さらに Ann.of Math に論文書けば十分条件にもなるわよ。
      |      ` -'\       ー'  人          一番嫌いなのは論文数を増やすためにくだらない論文を書いて
    |        /(l     __/  ヽ、           良い論文の出版を遅らせるお馬鹿な人。
     |       (:::::`‐-、__  |::::`、     ヒニニヽ、         あなたの論文が Ann of Math に accept される確率は?
    |      / `‐-、::::::::::`‐-、::::\   /,ニニ、\            それとも最近は Inv. Math. の方が上かしら?
   |      |::::::::::::::::::|` -、:::::::,ヘ ̄|'、  ヒニ二、 \
.   |      /::::::::::::::::::|::::::::\/:::O`、::\   | '、   \
   |      /:::::::::::::::::::/:::::::::::::::::::::::::::::'、::::\ノ  ヽ、  |
  |      |:::::/:::::::::/:::::::::::::::::::::::::::::::::::'、',::::'、  /:\__/‐、
  |      |/:::::::::::/::::::::::::::::::::::::::::::::::O::| '、::| く::::::::::::: ̄|
   |     /_..-'´ ̄`ー-、:::::::::::::::::::::::::::::::::::|/:/`‐'::\;;;;;;;_|
   |    |/::::::::::::::::::::::\:::::::::::::::::::::::::::::|::/::::|::::/:::::::::::/
    |   /:::::::::::::::::::::::::::::::::|:::::::::::::::::::::O::|::|::::::|:::::::::::::::/

504 :132人目の素数さん:2012/05/08(火) 19:17:29.11
>>500
Rとは関係なしにMeCabが使える状態なのかどうかは確認した?
RMeCabはRの中からMeCabをただ単にcallしているだけなので、
そもそもMeCabが使えなかったら、RMeCabも使えない。

505 :132人目の素数さん:2012/05/08(火) 19:44:31.59
          __ノ)-'´ ̄ ̄`ー- 、_
        , '´  _. -‐'''"二ニニ=-`ヽ、
      /   /:::::; -‐''"        `ーノ
     /   /:::::/           \
     /    /::::::/          | | |  |
     |   |:::::/ /     |  | | | |  |
      |   |::/ / / |  | ||  | | ,ハ .| ,ハ|
      |   |/ / / /| ,ハノ| /|ノレ,ニ|ル' 
     |   |  | / / レ',二、レ′ ,ィイ|゙/   私は只の数ヲタなんかとは付き合わないわ。
.     |   \ ∠イ  ,イイ|    ,`-' |      頭が良くて数学が出来てかっこいい人。それが必要条件よ。
     |     l^,人|  ` `-'     ゝ  |        さらに Ann.of Math に論文書けば十分条件にもなるわよ。
      |      ` -'\       ー'  人          一番嫌いなのは論文数を増やすためにくだらない論文を書いて
    |        /(l     __/  ヽ、           良い論文の出版を遅らせるお馬鹿な人。
     |       (:::::`‐-、__  |::::`、     ヒニニヽ、         あなたの論文が Ann of Math に accept される確率は?
    |      / `‐-、::::::::::`‐-、::::\   /,ニニ、\            それとも最近は Inv. Math. の方が上かしら?
   |      |::::::::::::::::::|` -、:::::::,ヘ ̄|'、  ヒニ二、 \
.   |      /::::::::::::::::::|::::::::\/:::O`、::\   | '、   \
   |      /:::::::::::::::::::/:::::::::::::::::::::::::::::'、::::\ノ  ヽ、  |
  |      |:::::/:::::::::/:::::::::::::::::::::::::::::::::::'、',::::'、  /:\__/‐、
  |      |/:::::::::::/::::::::::::::::::::::::::::::::::O::| '、::| く::::::::::::: ̄|
   |     /_..-'´ ̄`ー-、:::::::::::::::::::::::::::::::::::|/:/`‐'::\;;;;;;;_|
   |    |/::::::::::::::::::::::\:::::::::::::::::::::::::::::|::/::::|::::/:::::::::::/
    |   /:::::::::::::::::::::::::::::::::|:::::::::::::::::::::O::|::|::::::|:::::::::::::::/

506 :132人目の素数さん:2012/05/09(水) 12:16:57.42
>>504
コマンドプロンプト上からMeCab自体はつかえてるっぽいけど文字化けしてる
===============================
> 私は只の数ヲタなんかとは付き合わないわ。
私は只の数ヲ 險伜捷,荳€闊ャ,*,*,*,*,*
^ 蜷崎ゥ・繧オ螟画磁邯・*,*,*,*,*
險伜捷,荳€闊ャ,*,*,*,*,*
ネ 蜷崎ゥ・蝗コ譛牙錐隧・邨・ケ・*,*,*,*
か 險伜捷,荳€闊ャ,*,*,*,*,*
ニ 蜷崎ゥ・蝗コ譛牙錐隧・邨・ケ・*,*,*,*
ヘ 險伜捷,荳€闊ャ,*,*,*,*,*
t 蜷崎ゥ・蝗コ譛牙錐隧・邨・ケ・*,*,*,*
き合わないわ。 險伜捷,荳€闊ャ,*,*,*,*,*
============================

CMDの文字コードがShift-JISで、MeCabがutf-8版だから
こうなるのはわかるんだけど
============================
932 (ANSI/OEM - 日本語 Shift-JIS)
============================


507 :132人目の素数さん:2012/05/09(水) 13:04:31.70
>>506
Windowsのことはよくわからないけど、
コマンドプロンプトをuft-8になんとかして変更するとか(utf-8な代替ソフトを使うとか)、
MeCabに喰わせる前後で、nkfをかましてUTF-8/CP932の変換を行うとか、
MeCabを使うときだけ、文字化けしない環境(MacOSXやLinux)を使うとか、
真に解決しなければならないものなら、試す価値のある方法はたくさんありそうだ。

あと、SDOUTで文字化けするなら、ファイルにリダイレクトして、
UTF-8を扱えるテキストエディタで開くと文字化けしないのかどうかチェックすることも必要では?

508 :132人目の素数さん:2012/05/09(水) 14:15:31.27
>>507
標準出力して、utf8形式でエディタ(TeraPad)にファイルを読み込んでみたら
なんと一部の文字列が文字化けしてました。MeCabの出力がutf-8ではないのか?
==========================
> echo "頭が良くて数学が出来てかっこいい人。それが必要条件よ。 " | mecab > out.txt
==========================

Terapadでout.txtをutf-8形式で読み込んでみた
===========================
" 名詞,サ変接続,*,*,*,*,*
?a?a? 記号,一般,*,*,*,*,*
? 名詞,固有名詞,組織,*,*,*,*
-? 記号,一般,*,*,*,*,*
? 名詞,固有名詞,組織,*,*,*,*
?? 記号,一般,*,*,*,*,*
w 名詞,固有名詞,組織,*,*,*,*
?a? 記号,一般,*,*,*,*,*
- 略 -
EOS
=========================
Terapadで対応している他のコード(Shift-JIS,JIS,EUC,Unicode)でも
読み込んでみましたが、Utf-8以外だと文字化けしまくってました。

Win7のコマンドプロンプトをutf-8に変更するのは、たしかレジストリを弄る必要あったな
http://sgry.jp/blog/2011/06/26/475/
あとでやってみます

nkfをかませる方法だとRMeCabのソースに書き加えて再ビルドするかんじですか?
それともR側にそういうオプションがあったりします?

509 :132人目の素数さん:2012/05/09(水) 14:37:47.21
(続き)
>>507
さっきの文字化けの原因、わかりました。
"頭が良くて数学が〜"の文字列がCP932なのにMeCabに読み込ませていたからでした。
CMDをutf-8にしてもう一度出力してエディタで開いてみたところ
========================
" 名詞,サ変接続,*,*,*,*,*
頭 名詞,一般,*,*,*,*,頭,アタマ,アタマ
が 助詞,格助詞,一般,*,*,*,が,ガ,ガ
良く 形容詞,自立,*,*,形容詞・アウオ段,連用テ接続,良い,ヨク,ヨク
て 助詞,接続助詞,*,*,*,*,て,テ,テ
数学 名詞,一般,*,*,*,*,数学,スウガク,スーガク
が 助詞,格助詞,一般,*,*,*,が,ガ,ガ
出来 動詞,自立,*,*,一段,連用形,出来る,デキ,デキ
- 略 -
EOS
=========================
正常に表示されました。やったね。

つぎはRとMeCabのオプション調べてみます。
作業はなるべくWin7で完結させたいです。

510 :132人目の素数さん:2012/05/09(水) 15:36:01.63
          __ノ)-'´ ̄ ̄`ー- 、_
        , '´  _. -‐'''"二ニニ=-`ヽ、
      /   /:::::; -‐''"        `ーノ
     /   /:::::/           \
     /    /::::::/          | | |  |
     |   |:::::/ /     |  | | | |  |
      |   |::/ / / |  | ||  | | ,ハ .| ,ハ|
      |   |/ / / /| ,ハノ| /|ノレ,ニ|ル' 
     |   |  | / / レ',二、レ′ ,ィイ|゙/   私は只の数ヲタなんかとは付き合わないわ。
.     |   \ ∠イ  ,イイ|    ,`-' |      頭が良くて数学が出来てかっこいい人。それが必要条件よ。
     |     l^,人|  ` `-'     ゝ  |        さらに Ann.of Math に論文書けば十分条件にもなるわよ。
      |      ` -'\       ー'  人          一番嫌いなのは論文数を増やすためにくだらない論文を書いて
    |        /(l     __/  ヽ、           良い論文の出版を遅らせるお馬鹿な人。
     |       (:::::`‐-、__  |::::`、     ヒニニヽ、         あなたの論文が Ann of Math に accept される確率は?
    |      / `‐-、::::::::::`‐-、::::\   /,ニニ、\            それとも最近は Inv. Math. の方が上かしら?
   |      |::::::::::::::::::|` -、:::::::,ヘ ̄|'、  ヒニ二、 \
.   |      /::::::::::::::::::|::::::::\/:::O`、::\   | '、   \
   |      /:::::::::::::::::::/:::::::::::::::::::::::::::::'、::::\ノ  ヽ、  |
  |      |:::::/:::::::::/:::::::::::::::::::::::::::::::::::'、',::::'、  /:\__/‐、
  |      |/:::::::::::/::::::::::::::::::::::::::::::::::O::| '、::| く::::::::::::: ̄|
   |     /_..-'´ ̄`ー-、:::::::::::::::::::::::::::::::::::|/:/`‐'::\;;;;;;;_|
   |    |/::::::::::::::::::::::\:::::::::::::::::::::::::::::|::/::::|::::/:::::::::::/

511 :132人目の素数さん:2012/05/09(水) 20:12:11.20
          __ノ)-'´ ̄ ̄`ー- 、_
        , '´  _. -‐'''"二ニニ=-`ヽ、
      /   /:::::; -‐''"        `ーノ
     /   /:::::/           \
     /    /::::::/          | | |  |
     |   |:::::/ /     |  | | | |  |
      |   |::/ / / |  | ||  | | ,ハ .| ,ハ|
      |   |/ / / /| ,ハノ| /|ノレ,ニ|ル' 
     |   |  | / / レ',二、レ′ ,ィイ|゙/   私は只の数ヲタなんかとは付き合わないわ。
.     |   \ ∠イ  ,イイ|    ,`-' |      頭が良くて数学が出来てかっこいい人。それが必要条件よ。
     |     l^,人|  ` `-'     ゝ  |        さらに Ann.of Math に論文書けば十分条件にもなるわよ。
      |      ` -'\       ー'  人          一番嫌いなのは論文数を増やすためにくだらない論文を書いて
    |        /(l     __/  ヽ、           良い論文の出版を遅らせるお馬鹿な人。
     |       (:::::`‐-、__  |::::`、     ヒニニヽ、         あなたの論文が Ann of Math に accept される確率は?
    |      / `‐-、::::::::::`‐-、::::\   /,ニニ、\            それとも最近は Inv. Math. の方が上かしら?
   |      |::::::::::::::::::|` -、:::::::,ヘ ̄|'、  ヒニ二、 \
.   |      /::::::::::::::::::|::::::::\/:::O`、::\   | '、   \
   |      /:::::::::::::::::::/:::::::::::::::::::::::::::::'、::::\ノ  ヽ、  |
  |      |:::::/:::::::::/:::::::::::::::::::::::::::::::::::'、',::::'、  /:\__/‐、
  |      |/:::::::::::/::::::::::::::::::::::::::::::::::O::| '、::| く::::::::::::: ̄|
   |     /_..-'´ ̄`ー-、:::::::::::::::::::::::::::::::::::|/:/`‐'::\;;;;;;;_|
   |    |/::::::::::::::::::::::\:::::::::::::::::::::::::::::|::/::::|::::/:::::::::::/

512 :132人目の素数さん:2012/05/09(水) 21:04:27.28
>>500
基底

513 :132人目の素数さん:2012/05/18(金) 01:25:32.37
b <- rbind(1:2)
c <- cbind(1:2)
b+c
このような感じで
2 3
3 4
こういう結果を出すような方法はありますか?
このまま実行したら
>以下にエラー b + c : 適切な配列ではありません
と出ました

514 :132人目の素数さん:2012/05/18(金) 05:42:13.21
cbind(c,c) + rbind(b,b)

515 :132人目の素数さん:2012/05/18(金) 13:45:22.19
>>514
ちょっ、b, cは最高に単純化した例だろw

> outer(b,c,"+")
, , 1, 1

[,1] [,2]
[1,] 2 3

, , 2, 1

[,1] [,2]
[1,] 3 4
となるけど、
> d1 <- 1:2
> d2 <- 1:2
> outer(d1,d2,"+")
[,1] [,2]
[1,] 2 3
[2,] 3 4
となることからヒントを得ると、次のようにすればよい。
> outer(as.vector(b),as.vector(c),"+")
[,1] [,2]
[1,] 2 3
[2,] 3 4

516 :132人目の素数さん:2012/05/18(金) 18:05:46.17
Rjpwikiに回答したくないので(スルー検定失格の烙印を押されたくないので)、こちらに書く。

> line <- '127.0.0.1 - frank [10/Oct/2000:13:55:36 -0700] "GET /apache_pb.gif HTTP/1.0" 200 2326 "htp://www.example.com/start.html" "Mozilla/4.08 [en] (Win98; I ;Nav)" '
> m <- gregexpr("(\\d|[01]?\\d\\d|2[0-4]\\d|25[0-5])\\.(\\d|[01]?\\d\\d|2[0-4]\\d|25[0-5])\\.(\\d|[1]?\\d\\d|2[0-4]\\d|25[0-5])\\.(\\d|[01]?\\d\\d|2[0-4]\\d|25[0-5]) ", line, perl=TRUE)
> regmatches(line, m)
[[1]]
[1] "127.0.0.1 "

正規表現が書けるという前提だけど、上に示すとおり格段に難しいわけではない。
従って「非常に面倒かどうか」に対する答えは「全く面倒ではありません。ほぼコピペの世界です。」だ。


517 :132人目の素数さん:2012/05/19(土) 00:29:19.34
>>514-515
ありがとうございます。>>515がまさに望んでいたものでした。
outer関数についてよく勉強します。

518 :132人目の素数さん:2012/05/19(土) 08:44:41.03
a1 <- c("a", "b", "d", "f")
a2 <- c("b", "a", "f", "c")
a3 <- c("z", "m", "f", "a")
cbind(a1,a2,a3)
それぞれの行で"a"がある回数を求め、
処理結果をベクター、この場合にはc(1,1,0,1)としてまとめるにはどうすればよいでしょうか

519 :132人目の素数さん:2012/05/19(土) 09:22:50.09
>>518
ヒントを差し上げるので自力で考えてください。

> length(grep("a",c("b", "c", "d", "f")))
[1] 0
> length(grep("a",c("a", "b", "d", "f")))
[1] 1
> length(grep("a",c("a", "a", "d", "f")))
[1] 2

行単位で処理を繰り返す関数はapply()


520 :132人目の素数さん:2012/05/19(土) 15:06:19.07
# apply()を使わない手を考えようとしたが無理だった。

a1 <- c("a","b","d","f")
a2 <- c("b","a","f","c")
a3 <- c("z","m","f","a")
dat <- cbind(a1,a2,a3)
dat
dat == "a"

margin.table(dat == "a", margin = 1)

apply(dat == "a", MARGIN = 1, FUN = sum)


521 :132人目の素数さん:2012/05/19(土) 15:15:20.42
>>520
おぉ、それなら、
> rowSums(dat == "a")
[1] 1 1 0 1
もうこれでよさそう。

もう少し大きなテーブルでやってみると、
> d <- cbind(sample(letters[1:5],100,replace=TRUE),sample(letters[1:5],100,replace=TRUE),sample(letters[1:5],100,replace=TRUE))
> rowSums(d == "a")
[1] 1 1 0 0 1 0 0 1 0 0 2 0 1 0 2 0 0 1 2 0 0 0 1 0 1 1 1 1 1 1 3 1 1 2 0 1 1
[38] 0 2 0 2 1 0 0 1 1 1 0 1 1 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 2 0 2 0 0 1 0 0
[75] 0 0 1 0 1 1 0 0 1 1 1 1 1 0 0 1 1 0 0 0 0 0 2 0 1 0
大丈夫そうだ。

# ヒントだけのつもりだったのに。。。

522 :132人目の素数さん:2012/05/19(土) 16:52:03.11
>>521
その手があったか。

速度的には
rowSum()
が有利と思われる。

523 :132人目の素数さん:2012/05/19(土) 20:49:13.27
          __ノ)-'´ ̄ ̄`ー- 、_
        , '´  _. -‐'''"二ニニ=-`ヽ、
      /   /:::::; -‐''"        `ーノ
     /   /:::::/           \
     /    /::::::/          | | |  |
     |   |:::::/ /     |  | | | |  |
      |   |::/ / / |  | ||  | | ,ハ .| ,ハ|
      |   |/ / / /| ,ハノ| /|ノレ,ニ|ル' 
     |   |  | / / レ',二、レ′ ,ィイ|゙/   私は只の数ヲタなんかとは付き合わないわ。
.     |   \ ∠イ  ,イイ|    ,`-' |      頭が良くて数学が出来てかっこいい人。それが必要条件よ。
     |     l^,人|  ` `-'     ゝ  |        さらに Ann.of Math に論文書けば十分条件にもなるわよ。
      |      ` -'\       ー'  人          一番嫌いなのは論文数を増やすためにくだらない論文を書いて
    |        /(l     __/  ヽ、           良い論文の出版を遅らせるお馬鹿な人。
     |       (:::::`‐-、__  |::::`、     ヒニニヽ、         あなたの論文が Ann of Math に accept される確率は?
    |      / `‐-、::::::::::`‐-、::::\   /,ニニ、\            それとも最近は Inv. Math. の方が上かしら?
   |      |::::::::::::::::::|` -、:::::::,ヘ ̄|'、  ヒニ二、 \
.   |      /::::::::::::::::::|::::::::\/:::O`、::\   | '、   \
   |      /:::::::::::::::::::/:::::::::::::::::::::::::::::'、::::\ノ  ヽ、  |
  |      |:::::/:::::::::/:::::::::::::::::::::::::::::::::::'、',::::'、  /:\__/‐、
  |      |/:::::::::::/::::::::::::::::::::::::::::::::::O::| '、::| く::::::::::::: ̄|
   |     /_..-'´ ̄`ー-、:::::::::::::::::::::::::::::::::::|/:/`‐'::\;;;;;;;_|
   |    |/::::::::::::::::::::::\:::::::::::::::::::::::::::::|::/::::|::::/:::::::::::/

524 :132人目の素数さん:2012/05/19(土) 23:04:29.94
>>519-522
みなさんありがとうございます。
applyとrowsum()の両方を使えるようにします。


525 :132人目の素数さん:2012/05/20(日) 00:05:52.54
>>524
rowSums() だった。大文字小文字を区別するので注意。

http://entertainment-lab.blogspot.jp/2011/12/rapplyrowsums.html?m=1


526 :132人目の素数さん:2012/05/23(水) 06:06:44.69
          __ノ)-'´ ̄ ̄`ー- 、_
        , '´  _. -‐'''"二ニニ=-`ヽ、
      /   /:::::; -‐''"        `ーノ
     /   /:::::/           \
     /    /::::::/          | | |  |
     |   |:::::/ /     |  | | | |  |
      |   |::/ / / |  | ||  | | ,ハ .| ,ハ|
      |   |/ / / /| ,ハノ| /|ノレ,ニ|ル' 
     |   |  | / / レ',二、レ′ ,ィイ|゙/   私は只の数ヲタなんかとは付き合わないわ。
.     |   \ ∠イ  ,イイ|    ,`-' |      頭が良くて数学が出来てかっこいい人。それが必要条件よ。
     |     l^,人|  ` `-'     ゝ  |        さらに Ann.of Math に論文書けば十分条件にもなるわよ。
      |      ` -'\       ー'  人          一番嫌いなのは論文数を増やすためにくだらない論文を書いて
    |        /(l     __/  ヽ、           良い論文の出版を遅らせるお馬鹿な人。
     |       (:::::`‐-、__  |::::`、     ヒニニヽ、         あなたの論文が Ann of Math に accept される確率は?
    |      / `‐-、::::::::::`‐-、::::\   /,ニニ、\            それとも最近は Inv. Math. の方が上かしら?
   |      |::::::::::::::::::|` -、:::::::,ヘ ̄|'、  ヒニ二、 \
.   |      /::::::::::::::::::|::::::::\/:::O`、::\   | '、   \
   |      /:::::::::::::::::::/:::::::::::::::::::::::::::::'、::::\ノ  ヽ、  |
  |      |:::::/:::::::::/:::::::::::::::::::::::::::::::::::'、',::::'、  /:\__/‐、
  |      |/:::::::::::/::::::::::::::::::::::::::::::::::O::| '、::| く::::::::::::: ̄|
   |     /_..-'´ ̄`ー-、:::::::::::::::::::::::::::::::::::|/:/`‐'::\;;;;;;;_|
   |    |/::::::::::::::::::::::\:::::::::::::::::::::::::::::|::/::::|::::/:::::::::::/
    |   /:::::::::::::::::::::::::::::::::|:::::::::::::::::::::O::|::|::::::|:::::::::::::::/


527 :132人目の素数さん:2012/05/23(水) 08:15:18.64
          __ノ)-'´ ̄ ̄`ー- 、_
        , '´  _. -‐'''"二ニニ=-`ヽ、
      /   /:::::; -‐''"        `ーノ
     /   /:::::/           \
     /    /::::::/          | | |  |
     |   |:::::/ /     |  | | | |  |
      |   |::/ / / |  | ||  | | ,ハ .| ,ハ|
      |   |/ / / /| ,ハノ| /|ノレ,ニ|ル' 
     |   |  | / / レ',二、レ′ ,ィイ|゙/   私は只の数ヲタなんかとは付き合わないわ。
.     |   \ ∠イ  ,イイ|    ,`-' |      頭が良くて数学が出来てかっこいい人。それが必要条件よ。
     |     l^,人|  ` `-'     ゝ  |        さらに Ann.of Math に論文書けば十分条件にもなるわよ。
      |      ` -'\       ー'  人          一番嫌いなのは論文数を増やすためにくだらない論文を書いて
    |        /(l     __/  ヽ、           良い論文の出版を遅らせるお馬鹿な人。
     |       (:::::`‐-、__  |::::`、     ヒニニヽ、         あなたの論文が Ann of Math に accept される確率は?
    |      / `‐-、::::::::::`‐-、::::\   /,ニニ、\            それとも最近は Inv. Math. の方が上かしら?
   |      |::::::::::::::::::|` -、:::::::,ヘ ̄|'、  ヒニ二、 \
.   |      /::::::::::::::::::|::::::::\/:::O`、::\   | '、   \
   |      /:::::::::::::::::::/:::::::::::::::::::::::::::::'、::::\ノ  ヽ、  |
  |      |:::::/:::::::::/:::::::::::::::::::::::::::::::::::'、',::::'、  /:\__/‐、
  |      |/:::::::::::/::::::::::::::::::::::::::::::::::O::| '、::| く::::::::::::: ̄|
   |     /_..-'´ ̄`ー-、:::::::::::::::::::::::::::::::::::|/:/`‐'::\;;;;;;;_|
   |    |/::::::::::::::::::::::\:::::::::::::::::::::::::::::|::/::::|::::/:::::::::::/
    |   /:::::::::::::::::::::::::::::::::|:::::::::::::::::::::O::|::|::::::|:::::::::::::::/


528 :132人目の素数さん:2012/05/24(木) 21:30:30.29
すいません、ほんっとに初歩的な質問なんですが…
Wikiをざっと見ても行列Tipsを検索しても見当たらないので質問させてください

データフレームを数値行列に変換させるにはどうすればよいのでしょうか?
列成分をデータフレームから指定しても、as.matrixなどの変換をしても、
%*%の操作をすると数値行列にしてくださいと言われます

とりあえずデータフレームの数値を使って行列計算をしたいので、誰かサクッと教えていただけると助かりますm(_ _)
m

529 :132人目の素数さん:2012/05/25(金) 01:12:42.02
as.matrixの前後でstr()してみて。
多分factorになっていて数字ではないのではないかと思う。

530 :132人目の素数さん:2012/05/25(金) 03:03:02.18
そうでした
そしてこれを数字にするには…

531 :132人目の素数さん:2012/05/25(金) 03:04:41.50
as.characterしてas.numericで数値化されるかどうか

532 :132人目の素数さん:2012/05/25(金) 09:13:25.21
>>531
ヘルプには
To transform a factor ‘f’ to
approximately its original numeric values,
as.numeric(levels(f))[f]’ is recommended and slightly more
efficient than ‘as.numeric(as.character(f))’.
て書いてあるけどね。

533 :132人目の素数さん:2012/05/25(金) 15:01:44.54
>>532
そんなやり方があるのか、覚えられないなでも

534 :132人目の素数さん:2012/05/25(金) 16:48:14.73
>>533
今、確認してみたら、as.numeric()だけでも元に数字に戻るね。
> (a <- factor(sample(1:5, 10, replace = TRUE)))
[1] 2 3 1 1 1 1 1 5 2 2
Levels: 1 2 3 5
> as.numeric(a)
[1] 2 3 1 1 1 1 1 4 2 2
> as.numeric(levels(a))[a]
[1] 2 3 1 1 1 1 1 5 2 2
> as.numeric(as.character(a))
[1] 2 3 1 1 1 1 1 5 2 2

前からこうだったっけ?
いつの間にか仕様が変わった?


535 :532, 534:2012/05/25(金) 16:50:52.24
あっ、ごめん。たまたまsample()の出力がわかりにくかっただけみたいだ。
as.numeric()だと「5」のところが「4」になっているから、
as.numeric(factorクラス)はやっぱり駄目だ。

536 :132人目の素数さん:2012/05/25(金) 16:54:11.34
もっと顕著に分かるようにしてみた。スレ汚しすまん。
> (a <- factor(sample(1:100, 10)))
[1] 24 42 40 33 66 51 20 100 91 26
Levels: 20 24 26 33 40 42 51 66 91 100
> as.numeric(a)
[1] 2 6 5 4 8 7 1 10 9 3
> as.numeric(as.character(a))
[1] 24 42 40 33 66 51 20 100 91 26
> as.numeric(levels(a))[a]
[1] 24 42 40 33 66 51 20 100 91 26


537 :132人目の素数さん:2012/05/27(日) 07:33:26.16
          __ノ)-'´ ̄ ̄`ー- 、_
        , '´  _. -‐'''"二ニニ=-`ヽ、
      /   /:::::; -‐''"        `ーノ
     /   /:::::/           \
     /    /::::::/          | | |  |
     |   |:::::/ /     |  | | | |  |
      |   |::/ / / |  | ||  | | ,ハ .| ,ハ|
      |   |/ / / /| ,ハノ| /|ノレ,ニ|ル' 
     |   |  | / / レ',二、レ′ ,ィイ|゙/   私は只の数ヲタなんかとは付き合わないわ。
.     |   \ ∠イ  ,イイ|    ,`-' |      頭が良くて数学が出来てかっこいい人。それが必要条件よ。
     |     l^,人|  ` `-'     ゝ  |        さらに Ann.of Math に論文書けば十分条件にもなるわよ。
      |      ` -'\       ー'  人          一番嫌いなのは論文数を増やすためにくだらない論文を書いて
    |        /(l     __/  ヽ、           良い論文の出版を遅らせるお馬鹿な人。
     |       (:::::`‐-、__  |::::`、     ヒニニヽ、         あなたの論文が Ann of Math に accept される確率は?
    |      / `‐-、::::::::::`‐-、::::\   /,ニニ、\            それとも最近は Inv. Math. の方が上かしら?
   |      |::::::::::::::::::|` -、:::::::,ヘ ̄|'、  ヒニ二、 \
.   |      /::::::::::::::::::|::::::::\/:::O`、::\   | '、   \
   |      /:::::::::::::::::::/:::::::::::::::::::::::::::::'、::::\ノ  ヽ、  |
  |      |:::::/:::::::::/:::::::::::::::::::::::::::::::::::'、',::::'、  /:\__/‐、
  |      |/:::::::::::/::::::::::::::::::::::::::::::::::O::| '、::| く::::::::::::: ̄|
   |     /_..-'´ ̄`ー-、:::::::::::::::::::::::::::::::::::|/:/`‐'::\;;;;;;;_|
   |    |/::::::::::::::::::::::\:::::::::::::::::::::::::::::|::/::::|::::/:::::::::::/
    |   /:::::::::::::::::::::::::::::::::|:::::::::::::::::::::O::|::|::::::|:::::::::::::::/

538 :132人目の素数さん:2012/05/27(日) 08:50:40.45
>>536

ご丁寧にどうもです!
as.numericだと変な数字になるから悩んでたのですが、そういう方法もあったのですね
as.matrixだけでも計算できない場合でもこれでよさそうです

ありがとうございました

539 :132人目の素数さん:2012/05/29(火) 04:32:41.65
          __ノ)-'´ ̄ ̄`ー- 、_
        , '´  _. -‐'''"二ニニ=-`ヽ、
      /   /:::::; -‐''"        `ーノ
     /   /:::::/           \
     /    /::::::/          | | |  |
     |   |:::::/ /     |  | | | |  |
      |   |::/ / / |  | ||  | | ,ハ .| ,ハ|
      |   |/ / / /| ,ハノ| /|ノレ,ニ|ル' 
     |   |  | / / レ',二、レ′ ,ィイ|゙/   私は只の数ヲタなんかとは付き合わないわ。
.     |   \ ∠イ  ,イイ|    ,`-' |      頭が良くて数学が出来てかっこいい人。それが必要条件よ。
     |     l^,人|  ` `-'     ゝ  |        さらに Ann.of Math に論文書けば十分条件にもなるわよ。
      |      ` -'\       ー'  人          一番嫌いなのは論文数を増やすためにくだらない論文を書いて
    |        /(l     __/  ヽ、           良い論文の出版を遅らせるお馬鹿な人。
     |       (:::::`‐-、__  |::::`、     ヒニニヽ、         あなたの論文が Ann of Math に accept される確率は?
    |      / `‐-、::::::::::`‐-、::::\   /,ニニ、\            それとも最近は Inv. Math. の方が上かしら?
   |      |::::::::::::::::::|` -、:::::::,ヘ ̄|'、  ヒニ二、 \
.   |      /::::::::::::::::::|::::::::\/:::O`、::\   | '、   \
   |      /:::::::::::::::::::/:::::::::::::::::::::::::::::'、::::\ノ  ヽ、  |
  |      |:::::/:::::::::/:::::::::::::::::::::::::::::::::::'、',::::'、  /:\__/‐、
  |      |/:::::::::::/::::::::::::::::::::::::::::::::::O::| '、::| く::::::::::::: ̄|
   |     /_..-'´ ̄`ー-、:::::::::::::::::::::::::::::::::::|/:/`‐'::\;;;;;;;_|
   |    |/::::::::::::::::::::::\:::::::::::::::::::::::::::::|::/::::|::::/:::::::::::/

540 :132人目の素数さん:2012/06/03(日) 20:40:13.33
          __ノ)-'´ ̄ ̄`ー- 、_
        , '´  _. -‐'''"二ニニ=-`ヽ、
      /   /:::::; -‐''"        `ーノ
     /   /:::::/           \
     /    /::::::/          | | |  |
     |   |:::::/ /     |  | | | |  |
      |   |::/ / / |  | ||  | | ,ハ .| ,ハ|
      |   |/ / / /| ,ハノ| /|ノレ,ニ|ル' 
     |   |  | / / レ',二、レ′ ,ィイ|゙/   私は只の数ヲタなんかとは付き合わないわ。
.     |   \ ∠イ  ,イイ|    ,`-' |      頭が良くて数学が出来てかっこいい人。それが必要条件よ。
     |     l^,人|  ` `-'     ゝ  |        さらに Ann.of Math に論文書けば十分条件にもなるわよ。
      |      ` -'\       ー'  人          一番嫌いなのは論文数を増やすためにくだらない論文を書いて
    |        /(l     __/  ヽ、           良い論文の出版を遅らせるお馬鹿な人。
     |       (:::::`‐-、__  |::::`、     ヒニニヽ、         あなたの論文が Ann of Math に accept される確率は?
    |      / `‐-、::::::::::`‐-、::::\   /,ニニ、\            それとも最近は Inv. Math. の方が上かしら?
   |      |::::::::::::::::::|` -、:::::::,ヘ ̄|'、  ヒニ二、 \
.   |      /::::::::::::::::::|::::::::\/:::O`、::\   | '、   \
   |      /:::::::::::::::::::/:::::::::::::::::::::::::::::'、::::\ノ  ヽ、  |
  |      |:::::/:::::::::/:::::::::::::::::::::::::::::::::::'、',::::'、  /:\__/‐、
  |      |/:::::::::::/::::::::::::::::::::::::::::::::::O::| '、::| く::::::::::::: ̄|
   |     /_..-'´ ̄`ー-、:::::::::::::::::::::::::::::::::::|/:/`‐'::\;;;;;;;_|
   |    |/::::::::::::::::::::::\:::::::::::::::::::::::::::::|::/::::|::::/:::::::::::/
    |   /:::::::::::::::::::::::::::::::::|:::::::::::::::::::::O::|::|::::::|:::::::::::::::/

541 :132人目の素数さん:2012/06/03(日) 23:20:55.48
          __ノ)-'´ ̄ ̄`ー- 、_
        , '´  _. -‐'''"二ニニ=-`ヽ、
      /   /:::::; -‐''"        `ーノ
     /   /:::::/           \
     /    /::::::/          | | |  |
     |   |:::::/ /     |  | | | |  |
      |   |::/ / / |  | ||  | | ,ハ .| ,ハ|
      |   |/ / / /| ,ハノ| /|ノレ,ニ|ル' 
     |   |  | / / レ',二、レ′ ,ィイ|゙/   私は只の数ヲタなんかとは付き合わないわ。
.     |   \ ∠イ  ,イイ|    ,`-' |      頭が良くて数学が出来てかっこいい人。それが必要条件よ。
     |     l^,人|  ` `-'     ゝ  |        さらに Ann.of Math に論文書けば十分条件にもなるわよ。
      |      ` -'\       ー'  人          一番嫌いなのは論文数を増やすためにくだらない論文を書いて
    |        /(l     __/  ヽ、           良い論文の出版を遅らせるお馬鹿な人。
     |       (:::::`‐-、__  |::::`、     ヒニニヽ、         あなたの論文が Ann of Math に accept される確率は?
    |      / `‐-、::::::::::`‐-、::::\   /,ニニ、\            それとも最近は Inv. Math. の方が上かしら?
   |      |::::::::::::::::::|` -、:::::::,ヘ ̄|'、  ヒニ二、 \
.   |      /::::::::::::::::::|::::::::\/:::O`、::\   | '、   \
   |      /:::::::::::::::::::/:::::::::::::::::::::::::::::'、::::\ノ  ヽ、  |
  |      |:::::/:::::::::/:::::::::::::::::::::::::::::::::::'、',::::'、  /:\__/‐、
  |      |/:::::::::::/::::::::::::::::::::::::::::::::::O::| '、::| く::::::::::::: ̄|
   |     /_..-'´ ̄`ー-、:::::::::::::::::::::::::::::::::::|/:/`‐'::\;;;;;;;_|
   |    |/::::::::::::::::::::::\:::::::::::::::::::::::::::::|::/::::|::::/:::::::::::/
    |   /:::::::::::::::::::::::::::::::::|:::::::::::::::::::::O::|::|::::::|:::::::::::::::/

542 :132人目の素数さん:2012/06/04(月) 00:09:13.82
pattern <- c("ab","ef")
target <- c("abaa","abef","aefe","cafe")

のように、2個のベクトルがあるとき、
pattern の各要素が target の各要素に含まれるかどうかを検索したい。
for 文を使わずに済ます、何かいい方法ある?

例えば上の例では、
[1] "abaa" "abef" "aefe"
のように出力されたら OK です。

つまり、コマンドライン的なら
grep -f pattern target
のようなことを R を使ってやりたいわけです。


543 :132人目の素数さん:2012/06/04(月) 01:07:52.08
>>542
?grepで意味が分からないなら
もうsystem()でいいじゃん

544 :132人目の素数さん:2012/06/04(月) 07:28:20.53
          __ノ)-'´ ̄ ̄`ー- 、_
        , '´  _. -‐'''"二ニニ=-`ヽ、
      /   /:::::; -‐''"        `ーノ
     /   /:::::/           \
     /    /::::::/          | | |  |
     |   |:::::/ /     |  | | | |  |
      |   |::/ / / |  | ||  | | ,ハ .| ,ハ|
      |   |/ / / /| ,ハノ| /|ノレ,ニ|ル' 
     |   |  | / / レ',二、レ′ ,ィイ|゙/   私は只の数ヲタなんかとは付き合わないわ。
.     |   \ ∠イ  ,イイ|    ,`-' |      頭が良くて数学が出来てかっこいい人。それが必要条件よ。
     |     l^,人|  ` `-'     ゝ  |        さらに Ann.of Math に論文書けば十分条件にもなるわよ。
      |      ` -'\       ー'  人          一番嫌いなのは論文数を増やすためにくだらない論文を書いて
    |        /(l     __/  ヽ、           良い論文の出版を遅らせるお馬鹿な人。
     |       (:::::`‐-、__  |::::`、     ヒニニヽ、         あなたの論文が Ann of Math に accept される確率は?
    |      / `‐-、::::::::::`‐-、::::\   /,ニニ、\            それとも最近は Inv. Math. の方が上かしら?
   |      |::::::::::::::::::|` -、:::::::,ヘ ̄|'、  ヒニ二、 \
.   |      /::::::::::::::::::|::::::::\/:::O`、::\   | '、   \
   |      /:::::::::::::::::::/:::::::::::::::::::::::::::::'、::::\ノ  ヽ、  |
  |      |:::::/:::::::::/:::::::::::::::::::::::::::::::::::'、',::::'、  /:\__/‐、
  |      |/:::::::::::/::::::::::::::::::::::::::::::::::O::| '、::| く::::::::::::: ̄|
   |     /_..-'´ ̄`ー-、:::::::::::::::::::::::::::::::::::|/:/`‐'::\;;;;;;;_|
   |    |/::::::::::::::::::::::\:::::::::::::::::::::::::::::|::/::::|::::/:::::::::::/
    |   /:::::::::::::::::::::::::::::::::|:::::::::::::::::::::O::|::|::::::|:::::::::::::::/

545 :132人目の素数さん:2012/06/04(月) 09:11:46.10
>>543
grep() は、pattern の vector 長が 2 以上の場合、最初の要素しか
使われないのです。その上、target 内の要素の位置をベクトルで返す仕様。
せめて、論理値をベクトルで返してくれたらね。

残念なことに R を動かす環境には grep コマンドがなく、
現在は unix 環境で前処理してるけど、面倒臭いなあと思って
良い方法がないか尋ねた次第です。


546 :132人目の素数さん:2012/06/04(月) 09:16:32.70
あ、grepl は、論理値ベクトルを返してくれるんだね。知らなかったわ。


547 :543:2012/06/04(月) 09:31:57.61
grep関数群のヘルプを読んだ上で質問していたのか。
なら、下記はどうだろう?
> target[unique(as.numeric(sapply(1:length(pattern), function(i){grep(pattern[i], target)})))]
[1] "abaa" "abef" "aefe"

で、関数化すれば
> f542 <- function(x, y) {target[unique(as.numeric(sapply(1:length(x), function(i){grep(x[i], y)})))]}
> f542(pattern, target)
[1] "abaa" "abef" "aefe"
となる。

apply関数群もなしにすましたいという後出しは禁止。

548 :543:2012/06/04(月) 09:38:53.74
おぉ、凡ミス

f542 <- function(x, y) {target[unique(as.numeric(sapply(1:length(x), function(i){grep(x[i], y)})))]}

f542 <- function(x, y) {y[unique(as.numeric(sapply(1:length(x), function(i){grep(x[i], y)})))]}

549 :542:2012/06/04(月) 10:34:25.66
>>548
なるほど。確かに目的の処理ができます。
どうもありがとう。
私の頭がforで、applyできていませんでした。


550 :132人目の素数さん:2012/06/04(月) 12:34:01.89
          __ノ)-'´ ̄ ̄`ー- 、_
        , '´  _. -‐'''"二ニニ=-`ヽ、
      /   /:::::; -‐''"        `ーノ
     /   /:::::/           \
     /    /::::::/          | | |  |
     |   |:::::/ /     |  | | | |  |
      |   |::/ / / |  | ||  | | ,ハ .| ,ハ|
      |   |/ / / /| ,ハノ| /|ノレ,ニ|ル' 
     |   |  | / / レ',二、レ′ ,ィイ|゙/   私は只の数ヲタなんかとは付き合わないわ。
.     |   \ ∠イ  ,イイ|    ,`-' |      頭が良くて数学が出来てかっこいい人。それが必要条件よ。
     |     l^,人|  ` `-'     ゝ  |        さらに Ann.of Math に論文書けば十分条件にもなるわよ。
      |      ` -'\       ー'  人          一番嫌いなのは論文数を増やすためにくだらない論文を書いて
    |        /(l     __/  ヽ、           良い論文の出版を遅らせるお馬鹿な人。
     |       (:::::`‐-、__  |::::`、     ヒニニヽ、         あなたの論文が Ann of Math に accept される確率は?
    |      / `‐-、::::::::::`‐-、::::\   /,ニニ、\            それとも最近は Inv. Math. の方が上かしら?
   |      |::::::::::::::::::|` -、:::::::,ヘ ̄|'、  ヒニ二、 \
.   |      /::::::::::::::::::|::::::::\/:::O`、::\   | '、   \
   |      /:::::::::::::::::::/:::::::::::::::::::::::::::::'、::::\ノ  ヽ、  |
  |      |:::::/:::::::::/:::::::::::::::::::::::::::::::::::'、',::::'、  /:\__/‐、
  |      |/:::::::::::/::::::::::::::::::::::::::::::::::O::| '、::| く::::::::::::: ̄|
   |     /_..-'´ ̄`ー-、:::::::::::::::::::::::::::::::::::|/:/`‐'::\;;;;;;;_|
   |    |/::::::::::::::::::::::\:::::::::::::::::::::::::::::|::/::::|::::/:::::::::::/
    |   /:::::::::::::::::::::::::::::::::|:::::::::::::::::::::O::|::|::::::|:::::::::::::::/

551 :132人目の素数さん:2012/06/04(月) 19:03:37.28
頭の体操
> target[unique(c(sapply(pattern, function(x) grep(x, target))))]
[1] "abaa" "abef" "aefe"



552 :551:2012/06/04(月) 19:07:14.04
こっちのほうがいいかも
> unique(c(sapply(pattern, function(x) grep(x, target, value=TRUE))))
[1] "abaa" "abef" "aefe"



553 :542:2012/06/04(月) 19:39:49.43
>>552 は、target内の要素が相異なることが前提になりますね。

あとは、target内の要素の順序を保つようにならないものかな。


554 :542:2012/06/04(月) 19:47:57.32
まあ、ソートすればOKと。

pattern <- c("ab","ef"); target <- c("abaa","abef","aefe","cafe","abef")

target[sort(unique(c(sapply(pattern, function(x) grep(x, target)))))]


555 :132人目の素数さん:2012/06/04(月) 19:49:05.43
>>551, 552
あぁ、そうだね。
わざわざ1:lenght(pattern)でやるより、簡潔にsapply(pattern, function(x) ...)でよかった。
ご指摘ありがとう。

> target <- apply(matrix(sample(letters[1:6], 4 * 10000, replace = TRUE), ncol = 4), 1, paste, collapse = '')
> pattern <- c("ab","ef")

> system.time(target[unique(unlist(sapply(1:length(pattern), function(i){grep(pattern[i], target)})))])
ユーザ システム 経過
0.004 0.000 0.005
> system.time(unique(c(sapply(pattern, function(x) grep(x, target, value=TRUE)))))
ユーザ システム 経過
0.004 0.000 0.007

速度的にはあまり変わらないみたいだが。


556 :542:2012/06/04(月) 21:20:11.29
ミスがありました。>>553 は unlist しないと駄目でした。
target[sort(unique(unlist(sapply(pattern, function(x) grep(x, target)))))]

あと、greplを使えないかなと思い、>>555 氏の方法でランダム生成した
サイズ 10000 の target に対し、
target[apply(sapply(pattern,function(x)grepl(x,target)),1,any)]
を適用してみましたが、apply系の関数を2重に使うと、当たり前ですが
遅くなりますね。
> pattern <- c("ab","ef")
> target <- apply(matrix(sample(letters[1:6], 4 * 10000, replace = TRUE), ncol = 4), 1, paste, collapse = '')
> system.time(target[unique(unlist(sapply(1:length(pattern), function(i){grep(pattern[i], target)})))])
user system elapsed
0.01 0.00 0.02
> system.time(target[sort(unique(unlist(sapply(pattern, function(x) grep(x, target)))))])
user system elapsed
0.02 0.00 0.02
> system.time(target[apply(sapply(pattern,function(x)grepl(x,target)),1,any)])
user system elapsed
0.05 0.00 0.05


557 :542:2012/06/04(月) 21:46:39.76
rowSums は apply(x,1,sum) のエイリアスだと思ってたら、
rowSums のほうが、だいぶ速いんだね。知らなかったよ。
> system.time(target[apply(sapply(pattern,function(x)grepl(x,target)),1,any)])
user system elapsed
0.05 0.00 0.05
> system.time(target[as.logical(rowSums(sapply(pattern,function(x)grepl(x,target))))])
user system elapsed
0.01 0.00 0.02


558 :132人目の素数さん:2012/06/04(月) 21:52:36.36
>>557
投稿しようとしたら書かれてた
rowSumsはCで書かれてるはず
lapplyも同様
sapplyはlapplyを呼んでいる
applyはRで書かれていて遅い

559 :542:2012/06/04(月) 22:04:53.47
>>558
へえ。applyは、なるべく避けた方が良さげですね。勉強になりました。


560 :132人目の素数さん:2012/06/04(月) 23:15:00.88
          __ノ)-'´ ̄ ̄`ー- 、_
        , '´  _. -‐'''"二ニニ=-`ヽ、
      /   /:::::; -‐''"        `ーノ
     /   /:::::/           \
     /    /::::::/          | | |  |
     |   |:::::/ /     |  | | | |  |
      |   |::/ / / |  | ||  | | ,ハ .| ,ハ|
      |   |/ / / /| ,ハノ| /|ノレ,ニ|ル' 
     |   |  | / / レ',二、レ′ ,ィイ|゙/   私は只の数ヲタなんかとは付き合わないわ。
.     |   \ ∠イ  ,イイ|    ,`-' |      頭が良くて数学が出来てかっこいい人。それが必要条件よ。
     |     l^,人|  ` `-'     ゝ  |        さらに Ann.of Math に論文書けば十分条件にもなるわよ。
      |      ` -'\       ー'  人          一番嫌いなのは論文数を増やすためにくだらない論文を書いて
    |        /(l     __/  ヽ、           良い論文の出版を遅らせるお馬鹿な人。
     |       (:::::`‐-、__  |::::`、     ヒニニヽ、         あなたの論文が Ann of Math に accept される確率は?
    |      / `‐-、::::::::::`‐-、::::\   /,ニニ、\            それとも最近は Inv. Math. の方が上かしら?
   |      |::::::::::::::::::|` -、:::::::,ヘ ̄|'、  ヒニ二、 \
.   |      /::::::::::::::::::|::::::::\/:::O`、::\   | '、   \
   |      /:::::::::::::::::::/:::::::::::::::::::::::::::::'、::::\ノ  ヽ、  |
  |      |:::::/:::::::::/:::::::::::::::::::::::::::::::::::'、',::::'、  /:\__/‐、
  |      |/:::::::::::/::::::::::::::::::::::::::::::::::O::| '、::| く::::::::::::: ̄|
   |     /_..-'´ ̄`ー-、:::::::::::::::::::::::::::::::::::|/:/`‐'::\;;;;;;;_|
   |    |/::::::::::::::::::::::\:::::::::::::::::::::::::::::|::/::::|::::/:::::::::::/

561 :132人目の素数さん:2012/06/05(火) 07:03:58.00
R.exeのインストールされていないwindowsPCで、R言語で書かれた
プログラムを実行する手段はありますでしょうか。
(Fortranの実行ファイルみたいなイメージです)

562 :132人目の素数さん:2012/06/05(火) 07:09:23.62
          __ノ)-'´ ̄ ̄`ー- 、_
        , '´  _. -‐'''"二ニニ=-`ヽ、
      /   /:::::; -‐''"        `ーノ
     /   /:::::/           \
     /    /::::::/          | | |  |
     |   |:::::/ /     |  | | | |  |
      |   |::/ / / |  | ||  | | ,ハ .| ,ハ|
      |   |/ / / /| ,ハノ| /|ノレ,ニ|ル' 
     |   |  | / / レ',二、レ′ ,ィイ|゙/   私は只の数ヲタなんかとは付き合わないわ。
.     |   \ ∠イ  ,イイ|    ,`-' |      頭が良くて数学が出来てかっこいい人。それが必要条件よ。
     |     l^,人|  ` `-'     ゝ  |        さらに Ann.of Math に論文書けば十分条件にもなるわよ。
      |      ` -'\       ー'  人          一番嫌いなのは論文数を増やすためにくだらない論文を書いて
    |        /(l     __/  ヽ、           良い論文の出版を遅らせるお馬鹿な人。
     |       (:::::`‐-、__  |::::`、     ヒニニヽ、         あなたの論文が Ann of Math に accept される確率は?
    |      / `‐-、::::::::::`‐-、::::\   /,ニニ、\            それとも最近は Inv. Math. の方が上かしら?
   |      |::::::::::::::::::|` -、:::::::,ヘ ̄|'、  ヒニ二、 \
.   |      /::::::::::::::::::|::::::::\/:::O`、::\   | '、   \
   |      /:::::::::::::::::::/:::::::::::::::::::::::::::::'、::::\ノ  ヽ、  |
  |      |:::::/:::::::::/:::::::::::::::::::::::::::::::::::'、',::::'、  /:\__/‐、
  |      |/:::::::::::/::::::::::::::::::::::::::::::::::O::| '、::| く::::::::::::: ̄|
   |     /_..-'´ ̄`ー-、:::::::::::::::::::::::::::::::::::|/:/`‐'::\;;;;;;;_|

563 :132人目の素数さん:2012/06/05(火) 15:37:11.75
SAS使用歴20年、R半年の者です。
RにはSASで言うところのマクロみたいな物はないでしょうか?

564 :132人目の素数さん:2012/06/05(火) 20:30:53.61
          __ノ)-'´ ̄ ̄`ー- 、_
        , '´  _. -‐'''"二ニニ=-`ヽ、
      /   /:::::; -‐''"        `ーノ
     /   /:::::/           \
     /    /::::::/          | | |  |
     |   |:::::/ /     |  | | | |  |
      |   |::/ / / |  | ||  | | ,ハ .| ,ハ|
      |   |/ / / /| ,ハノ| /|ノレ,ニ|ル' 
     |   |  | / / レ',二、レ′ ,ィイ|゙/   私は只の数ヲタなんかとは付き合わないわ。
.     |   \ ∠イ  ,イイ|    ,`-' |      頭が良くて数学が出来てかっこいい人。それが必要条件よ。
     |     l^,人|  ` `-'     ゝ  |        さらに Ann.of Math に論文書けば十分条件にもなるわよ。
      |      ` -'\       ー'  人          一番嫌いなのは論文数を増やすためにくだらない論文を書いて
    |        /(l     __/  ヽ、           良い論文の出版を遅らせるお馬鹿な人。
     |       (:::::`‐-、__  |::::`、     ヒニニヽ、         あなたの論文が Ann of Math に accept される確率は?
    |      / `‐-、::::::::::`‐-、::::\   /,ニニ、\            それとも最近は Inv. Math. の方が上かしら?
   |      |::::::::::::::::::|` -、:::::::,ヘ ̄|'、  ヒニ二、 \
.   |      /::::::::::::::::::|::::::::\/:::O`、::\   | '、   \
   |      /:::::::::::::::::::/:::::::::::::::::::::::::::::'、::::\ノ  ヽ、  |
  |      |:::::/:::::::::/:::::::::::::::::::::::::::::::::::'、',::::'、  /:\__/‐、
  |      |/:::::::::::/::::::::::::::::::::::::::::::::::O::| '、::| く::::::::::::: ̄|
   |     /_..-'´ ̄`ー-、:::::::::::::::::::::::::::::::::::|/:/`‐'::\;;;;;;;_|
   |    |/::::::::::::::::::::::\:::::::::::::::::::::::::::::|::/::::|::::/:::::::::::/
    |   /:::::::::::::::::::::::::::::::::|:::::::::::::::::::::O::|::|::::::|:::::::::::::::/

565 :132人目の素数さん:2012/06/05(火) 22:40:37.65
R2.15.0でRODBCとXLConnectを同時に使用しようとすると名前空間エラーがでませんか?

566 :132人目の素数さん:2012/06/06(水) 00:22:27.48
          __ノ)-'´ ̄ ̄`ー- 、_
        , '´  _. -‐'''"二ニニ=-`ヽ、
      /   /:::::; -‐''"        `ーノ
     /   /:::::/           \
     /    /::::::/          | | |  |
     |   |:::::/ /     |  | | | |  |
      |   |::/ / / |  | ||  | | ,ハ .| ,ハ|
      |   |/ / / /| ,ハノ| /|ノレ,ニ|ル' 
     |   |  | / / レ',二、レ′ ,ィイ|゙/   私は只の数ヲタなんかとは付き合わないわ。
.     |   \ ∠イ  ,イイ|    ,`-' |      頭が良くて数学が出来てかっこいい人。それが必要条件よ。
     |     l^,人|  ` `-'     ゝ  |        さらに Ann.of Math に論文書けば十分条件にもなるわよ。
      |      ` -'\       ー'  人          一番嫌いなのは論文数を増やすためにくだらない論文を書いて
    |        /(l     __/  ヽ、           良い論文の出版を遅らせるお馬鹿な人。
     |       (:::::`‐-、__  |::::`、     ヒニニヽ、         あなたの論文が Ann of Math に accept される確率は?
    |      / `‐-、::::::::::`‐-、::::\   /,ニニ、\            それとも最近は Inv. Math. の方が上かしら?
   |      |::::::::::::::::::|` -、:::::::,ヘ ̄|'、  ヒニ二、 \
.   |      /::::::::::::::::::|::::::::\/:::O`、::\   | '、   \
   |      /:::::::::::::::::::/:::::::::::::::::::::::::::::'、::::\ノ  ヽ、  |
  |      |:::::/:::::::::/:::::::::::::::::::::::::::::::::::'、',::::'、  /:\__/‐、
  |      |/:::::::::::/::::::::::::::::::::::::::::::::::O::| '、::| く::::::::::::: ̄|
   |     /_..-'´ ̄`ー-、:::::::::::::::::::::::::::::::::::|/:/`‐'::\;;;;;;;_|
   |    |/::::::::::::::::::::::\:::::::::::::::::::::::::::::|::/::::|::::/:::::::::::/
    |   /:::::::::::::::::::::::::::::::::|:::::::::::::::::::::O::|::|::::::|:::::::::::::::/

567 :132人目の素数さん:2012/06/07(木) 09:54:47.13
放置されて可哀想なので、私には答える能力がないけど、答えてみる。

>>561
?compiler::compile
このあたりを入り口に文献を読んでみて。
ところで、R.exeが入ってなくても、R.dllは入れてもいいの?
やりたいことを達成するには、Cなどで書いて、
R.dllが一緒にインストールされるソフトを作成する必要がある気がする。

>>563
SASはほとんど使った経験がないから、回答する資格がないけど、
R言語そのものがRのマクロとも言えます。
お手元のR入門書の「関数化」の項を読んでみてください。

>>565
異なる作者による同じ目的のパッケージだと、そのようなことは起こるかも知れません。
何千もある投稿パッケージの全てにおいて整合性がとれているわけではありません。
再現性が確認できたら、RODBCとXLConnectのメンテナに報告するとよいでしょう。

568 :132人目の素数さん:2012/06/09(土) 23:34:52.27
          __ノ)-'´ ̄ ̄`ー- 、_
        , '´  _. -‐'''"二ニニ=-`ヽ、
      /   /:::::; -‐''"        `ーノ
     /   /:::::/           \
     /    /::::::/          | | |  |
     |   |:::::/ /     |  | | | |  |
      |   |::/ / / |  | ||  | | ,ハ .| ,ハ|
      |   |/ / / /| ,ハノ| /|ノレ,ニ|ル' 
     |   |  | / / レ',二、レ′ ,ィイ|゙/   私は只の数ヲタなんかとは付き合わないわ。
.     |   \ ∠イ  ,イイ|    ,`-' |      頭が良くて数学が出来てかっこいい人。それが必要条件よ。
     |     l^,人|  ` `-'     ゝ  |        さらに Ann.of Math に論文書けば十分条件にもなるわよ。
      |      ` -'\       ー'  人          一番嫌いなのは論文数を増やすためにくだらない論文を書いて
    |        /(l     __/  ヽ、           良い論文の出版を遅らせるお馬鹿な人。
     |       (:::::`‐-、__  |::::`、     ヒニニヽ、         あなたの論文が Ann of Math に accept される確率は?
    |      / `‐-、::::::::::`‐-、::::\   /,ニニ、\            それとも最近は Inv. Math. の方が上かしら?
   |      |::::::::::::::::::|` -、:::::::,ヘ ̄|'、  ヒニ二、 \
.   |      /::::::::::::::::::|::::::::\/:::O`、::\   | '、   \
   |      /:::::::::::::::::::/:::::::::::::::::::::::::::::'、::::\ノ  ヽ、  |
  |      |:::::/:::::::::/:::::::::::::::::::::::::::::::::::'、',::::'、  /:\__/‐、
  |      |/:::::::::::/::::::::::::::::::::::::::::::::::O::| '、::| く::::::::::::: ̄|
   |     /_..-'´ ̄`ー-、:::::::::::::::::::::::::::::::::::|/:/`‐'::\;;;;;;;_|
   |    |/::::::::::::::::::::::\:::::::::::::::::::::::::::::|::/::::|::::/:::::::::::/
    |   /:::::::::::::::::::::::::::::::::|:::::::::::::::::::::O::|::|::::::|:::::::::::::::/


569 :132人目の素数さん:2012/06/10(日) 06:29:56.30
          __ノ)-'´ ̄ ̄`ー- 、_
        , '´  _. -‐'''"二ニニ=-`ヽ、
      /   /:::::; -‐''"        `ーノ
     /   /:::::/           \
     /    /::::::/          | | |  |
     |   |:::::/ /     |  | | | |  |
      |   |::/ / / |  | ||  | | ,ハ .| ,ハ|
      |   |/ / / /| ,ハノ| /|ノレ,ニ|ル' 
     |   |  | / / レ',二、レ′ ,ィイ|゙/   私は只の数ヲタなんかとは付き合わないわ。
.     |   \ ∠イ  ,イイ|    ,`-' |      頭が良くて数学が出来てかっこいい人。それが必要条件よ。
     |     l^,人|  ` `-'     ゝ  |        さらに Ann.of Math に論文書けば十分条件にもなるわよ。
      |      ` -'\       ー'  人          一番嫌いなのは論文数を増やすためにくだらない論文を書いて
    |        /(l     __/  ヽ、           良い論文の出版を遅らせるお馬鹿な人。
     |       (:::::`‐-、__  |::::`、     ヒニニヽ、         あなたの論文が Ann of Math に accept される確率は?
    |      / `‐-、::::::::::`‐-、::::\   /,ニニ、\            それとも最近は Inv. Math. の方が上かしら?
   |      |::::::::::::::::::|` -、:::::::,ヘ ̄|'、  ヒニ二、 \
.   |      /::::::::::::::::::|::::::::\/:::O`、::\   | '、   \
   |      /:::::::::::::::::::/:::::::::::::::::::::::::::::'、::::\ノ  ヽ、  |
  |      |:::::/:::::::::/:::::::::::::::::::::::::::::::::::'、',::::'、  /:\__/‐、
  |      |/:::::::::::/::::::::::::::::::::::::::::::::::O::| '、::| く::::::::::::: ̄|
   |     /_..-'´ ̄`ー-、:::::::::::::::::::::::::::::::::::|/:/`‐'::\;;;;;;;_|
   |    |/::::::::::::::::::::::\:::::::::::::::::::::::::::::|::/::::|::::/:::::::::::/
    |   /:::::::::::::::::::::::::::::::::|:::::::::::::::::::::O::|::|::::::|:::::::::::::::/


570 :132人目の素数さん:2012/06/13(水) 20:54:59.86
          __ノ)-'´ ̄ ̄`ー- 、_
        , '´  _. -‐'''"二ニニ=-`ヽ、
      /   /:::::; -‐''"        `ーノ
     /   /:::::/           \
     /    /::::::/          | | |  |
     |   |:::::/ /     |  | | | |  |
      |   |::/ / / |  | ||  | | ,ハ .| ,ハ|
      |   |/ / / /| ,ハノ| /|ノレ,ニ|ル' 
     |   |  | / / レ',二、レ′ ,ィイ|゙/   私は只の数ヲタなんかとは付き合わないわ。
.     |   \ ∠イ  ,イイ|    ,`-' |      頭が良くて数学が出来てかっこいい人。それが必要条件よ。
     |     l^,人|  ` `-'     ゝ  |        さらに Ann.of Math に論文書けば十分条件にもなるわよ。
      |      ` -'\       ー'  人          一番嫌いなのは論文数を増やすためにくだらない論文を書いて
    |        /(l     __/  ヽ、           良い論文の出版を遅らせるお馬鹿な人。
     |       (:::::`‐-、__  |::::`、     ヒニニヽ、         あなたの論文が Ann of Math に accept される確率は?
    |      / `‐-、::::::::::`‐-、::::\   /,ニニ、\            それとも最近は Inv. Math. の方が上かしら?
   |      |::::::::::::::::::|` -、:::::::,ヘ ̄|'、  ヒニ二、 \
.   |      /::::::::::::::::::|::::::::\/:::O`、::\   | '、   \
   |      /:::::::::::::::::::/:::::::::::::::::::::::::::::'、::::\ノ  ヽ、  |
  |      |:::::/:::::::::/:::::::::::::::::::::::::::::::::::'、',::::'、  /:\__/‐、
  |      |/:::::::::::/::::::::::::::::::::::::::::::::::O::| '、::| く::::::::::::: ̄|
   |     /_..-'´ ̄`ー-、:::::::::::::::::::::::::::::::::::|/:/`‐'::\;;;;;;;_|
   |    |/::::::::::::::::::::::\:::::::::::::::::::::::::::::|::/::::|::::/:::::::::::/
    |   /:::::::::::::::::::::::::::::::::|:::::::::::::::::::::O::|::|::::::|:::::::::::::::/


571 :132人目の素数さん:2012/06/18(月) 14:21:06.94
Rjpwikiの「Rだけでデータクリーニング」。
真摯な回答をする人が何人もいて、偉いな。

572 :132人目の素数さん:2012/06/22(金) 16:40:13.73
荒らされていてここじゃ書きずらくないですか?
Rってプログラミング言語なのでプログラムスレッドに移住するそうですよ。
無理にとは言わないので出来たらお願いしますね。

統計解析R たぶんpart3くらい
http://toro.2ch.net/test/read.cgi/tech/1340339592/

573 :132人目の素数さん:2012/06/24(日) 14:58:20.27
          __ノ)-'´ ̄ ̄`ー- 、_
        , '´  _. -‐'''"二ニニ=-`ヽ、
      /   /:::::; -‐''"        `ーノ
     /   /:::::/           \
     /    /::::::/          | | |  |
     |   |:::::/ /     |  | | | |  |
      |   |::/ / / |  | ||  | | ,ハ .| ,ハ|
      |   |/ / / /| ,ハノ| /|ノレ,ニ|ル' 
     |   |  | / / レ',二、レ′ ,ィイ|゙/   私は只の数ヲタなんかとは付き合わないわ。
.     |   \ ∠イ  ,イイ|    ,`-' |      頭が良くて数学が出来てかっこいい人。それが必要条件よ。
     |     l^,人|  ` `-'     ゝ  |        さらに Ann.of Math に論文書けば十分条件にもなるわよ。
      |      ` -'\       ー'  人          一番嫌いなのは論文数を増やすためにくだらない論文を書いて
    |        /(l     __/  ヽ、           良い論文の出版を遅らせるお馬鹿な人。
     |       (:::::`‐-、__  |::::`、     ヒニニヽ、         あなたの論文が Ann of Math に accept される確率は?
    |      / `‐-、::::::::::`‐-、::::\   /,ニニ、\            それとも最近は Inv. Math. の方が上かしら?
   |      |::::::::::::::::::|` -、:::::::,ヘ ̄|'、  ヒニ二、 \
.   |      /::::::::::::::::::|::::::::\/:::O`、::\   | '、   \
   |      /:::::::::::::::::::/:::::::::::::::::::::::::::::'、::::\ノ  ヽ、  |
  |      |:::::/:::::::::/:::::::::::::::::::::::::::::::::::'、',::::'、  /:\__/‐、
  |      |/:::::::::::/::::::::::::::::::::::::::::::::::O::| '、::| く::::::::::::: ̄|
   |     /_..-'´ ̄`ー-、:::::::::::::::::::::::::::::::::::|/:/`‐'::\;;;;;;;_|
   |    |/::::::::::::::::::::::\:::::::::::::::::::::::::::::|::/::::|::::/:::::::::::/
    |   /:::::::::::::::::::::::::::::::::|:::::::::::::::::::::O::|::|::::::|:::::::::::::::/

574 :542:2012/06/27(水) 21:28:07.95
sqldf package が便利なことに気付いた。


575 :132人目の素数さん:2012/06/27(水) 22:14:18.48
OpenOffice Calcのファイル.odsから直接Rのデーターフレームに
読み込む方法はないかなあ。
cvsに変換して読み込んでいるけど、ちょっとだけメンドイ。

576 :132人目の素数さん:2012/06/28(木) 13:28:01.62
>>575
read.ods() from ROpenOffice
ttp://www.omegahat.org/ROpenOffice/

577 :132人目の素数さん:2012/06/28(木) 16:25:13.46
>>576
サンクス!
CRAN関連ばかり探していたから引っかからなかった訳だ。
ダウンロードして見たが、CRANじゃないのでインストール方法が判らん。
初心者なんでもうちょっと勉強してみる。

578 :132人目の素数さん:2012/06/28(木) 16:40:01.10
>>577
$ sudo R CMD INSTALL Rcompression_0.93-2.tar.gz ROpenOffice_0.4-0.tar.gz
でOK。

Rcompressionがない状態でROpenOfficeをインストールしようとすると、
$ sudo R CMD INSTALL ROpenOffice_0.4-0.tar.gz
* installing to library ‘/usr/local/lib/R/site-library’
ERROR: dependency ‘Rcompression’ is not available for package ‘ROpenOffice’
* removing ‘/usr/local/lib/R/site-library/ROpenOffice’
とおこられちゃう。

Windowsで R CMD INSTALLを使う場合は、 別途Windows toolsetが必要らしい。
ttp://cran.r-project.org/doc/manuals/R-admin.html#The-Windows-toolset

579 :132人目の素数さん:2012/06/28(木) 17:39:04.25
>>578
重ね重ね丁寧に答えていただき、有難うございます!

580 :132人目の素数さん:2012/07/02(月) 23:44:45.34
          __ノ)-'´ ̄ ̄`ー- 、_
        , '´  _. -‐'''"二ニニ=-`ヽ、
      /   /:::::; -‐''"        `ーノ
     /   /:::::/           \
     /    /::::::/          | | |  |
     |   |:::::/ /     |  | | | |  |
      |   |::/ / / |  | ||  | | ,ハ .| ,ハ|
      |   |/ / / /| ,ハノ| /|ノレ,ニ|ル' 
     |   |  | / / レ',二、レ′ ,ィイ|゙/   私は只の数ヲタなんかとは付き合わないわ。
.     |   \ ∠イ  ,イイ|    ,`-' |      頭が良くて数学が出来てかっこいい人。それが必要条件よ。
     |     l^,人|  ` `-'     ゝ  |        さらに Ann.of Math に論文書けば十分条件にもなるわよ。
      |      ` -'\       ー'  人          一番嫌いなのは論文数を増やすためにくだらない論文を書いて
    |        /(l     __/  ヽ、           良い論文の出版を遅らせるお馬鹿な人。
     |       (:::::`‐-、__  |::::`、     ヒニニヽ、         あなたの論文が Ann of Math に accept される確率は?
    |      / `‐-、::::::::::`‐-、::::\   /,ニニ、\            それとも最近は Inv. Math. の方が上かしら?
   |      |::::::::::::::::::|` -、:::::::,ヘ ̄|'、  ヒニ二、 \
.   |      /::::::::::::::::::|::::::::\/:::O`、::\   | '、   \
   |      /:::::::::::::::::::/:::::::::::::::::::::::::::::'、::::\ノ  ヽ、  |
  |      |:::::/:::::::::/:::::::::::::::::::::::::::::::::::'、',::::'、  /:\__/‐、
  |      |/:::::::::::/::::::::::::::::::::::::::::::::::O::| '、::| く::::::::::::: ̄|
   |     /_..-'´ ̄`ー-、:::::::::::::::::::::::::::::::::::|/:/`‐'::\;;;;;;;_|
   |    |/::::::::::::::::::::::\:::::::::::::::::::::::::::::|::/::::|::::/:::::::::::/
    |   /:::::::::::::::::::::::::::::::::|:::::::::::::::::::::O::|::|::::::|:::::::::::::::/

581 :575:2012/07/04(水) 19:45:39.22
Window toolsetがイマイチ判らず、ROpenOffice試せずにいたのですが、
Googleドキュメントのspreadsheetで read.csv("URL") から直接データーを
取り込めることを知り、色々試しているところです。
現時点では、spreadsheetのセル内に日本語使用すると、read.csv 失敗します。
英文字のみであれば、問題なく取り込めています。
バージョンの新しRだど2byte文字処理で不具合出るという話もあったので、
現状では出来るだけ日本語使用しないほうが良いみたいですね。

それから、Google spreadsheet をcsv形式でダウンロードしたファイルは、
Shift-JISにデコードし直さないと read.csv で取り込めませんでした。
UTF-8形式だったから読み込めなかったのかなあ。
まあそれでも Google spreadsheet が使えることが判ったので、
データー入力ツールはこれでいくことにします。

582 :132人目の素数さん:2012/07/05(木) 09:17:17.75
>>581
ヘルプぐらい読んでもよいと思うよ。
fileEncoding: character string: if non-empty declares the encoding used
on a file (not a connection) so the character data can be
re-encoded. See the ‘Encoding’ section of the help for
‘file’, the ‘R Data Import/Export Manual’ and ‘Note’.

encoding: encoding to be assumed for input strings. It is used to mark
character strings as known to be in Latin-1 or UTF-8 (see
‘Encoding’): it is not used to re-encode the input, but
allows R to handle encoded strings in their native encoding
(if one of those two). See ‘Value’.


583 :575:2012/07/05(木) 19:39:30.67
>>582
サンクスです! help読んでなかった・・・・
read.casv("file name", encording="UTF-8")で無事読み込めました。
これでだいぶ助かります。

584 :132人目の素数さん:2012/07/11(水) 12:33:21.72
ttp://www.facebook.com/tadashi.nagao
てっきり高校生か未熟な大学生と思っていたら、
案外おっさんだったw
老けて見えるだけかな。

何にせよ、某所には、公共性の高いものだけに絞って書き込んで、
それ以外は、ここ(2ch)に書き込んで欲しいぞ。

c(letters[1:26])とか、初心者や入門者を混乱させることを目的とした
嫌がらせとしか思えないぞ。

585 :132人目の素数さん:2012/07/20(金) 12:52:33.55
Mac OSX, Cocoa 環境でアプリ内から/Library/Frameworks/R.framework/Resources/にある実行ファイルを叩いてRを使っています。
[ NSTask launch... ] といった感じです。

しかし、スクリプトの末尾にq()を付けてもRの実行ファイルが動いたままになります(アクティビティモニタで確認)。
NSTask のterminateを呼び出しても消えてくれません。

どうもこれが悪さをして意図した動作をしてくれ内容です。
対処方法ご存知のかたがいましたらご回答をお願いします。

586 :132人目の素数さん:2012/07/20(金) 13:15:11.45
>>585
q()の引数saveを省略すると"ask"になるのでは?
ヘルプには
| The default is to ask in interactive use but may be overridden by
| command-line arguments (which must be supplied in non-interactive
| use).
って書いてある。

つまり、実験せずに書くが、q()と書いても、入力待ちプロンプトで無限ループになってる気がするぞ。

587 :132人目の素数さん:2012/07/20(金) 13:52:36.69
>>585
q("no")

とすれば、入力待ちにならないのでは?


588 :132人目の素数さん:2012/07/20(金) 14:00:19.17
レスありがとうございます。
q()の引数にnoを追加しましたが、依然挙動不審です。
どうもコマンド引数に < script.r と指定したスクリプトを読み込めない場合があるようです。
なんこれ? な状況ですが。
最小単位の構成から実験してみます。


589 :132人目の素数さん:2012/07/20(金) 14:05:39.29
>>585
いずれにせよ、q("no")やq("yes")は関係ない。
それらがなくても処理は終了する。
$ echo 'a <- 1' > /tmp/tmp.R
$ echo 'print(a)' >> /tmp/tmp.R
$ /Library/Frameworks/R.framework/Resources/R CMD BATCH /tmp/tmp.R out.txt
$ tail -7 out.txt
> a <- 1
> print(a)
[1] 1
>
> proc.time()
ユーザ システム 経過
0.825 0.051 1.074
ちゃんと終了する。

590 :589:2012/07/20(金) 14:09:30.38
あと、
$ ls -l $(which R)
lrwxr-xr-x 1 root wheel 47 4 27 16:45 /usr/bin/R -> /Library/Frameworks/R.framework/Resources/bin/R
だから、普通に
$ R CMD BATCH スクリプト 結果ファイル
でいいよ。

591 :馬鹿を焼く描写 ◆ghclfYsc82 :2012/07/22(日) 16:58:54.77
★★★学歴格差:無意味
★★★学力格差:尊重しろ
★★★能力格差:最大限利用せよ。
東大や京大にだって馬鹿は沢山居てるんだヨ。

学力格差と能力格差を認める理想社会を実現しろや。要するに:
★★★『馬鹿は無意味なので不必要だから、従って無能は静かにせよ。』★★★
っちゅうこっちゃ。低脳が騒ぐのはワシが許さんのや。

ちゃんと読め。




592 :132人目の素数さん:2012/07/26(木) 09:47:52.47
行列の作り方について質問です
xという1×n個の配列があって、
yという行列の要素を
y[i][j] = x[i]+x[j]としたいとき、
y行列を作る文はどのようにしたら良いのでしょうか


593 :132人目の素数さん:2012/07/26(木) 10:44:18.59
>>592
> n <- 10
> x <- 1:n + 10
> x
[1] 11 12 13 14 15 16 17 18 19 20
> outer(x, x, "+")
[,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10]
[1,] 22 23 24 25 26 27 28 29 30 31
[2,] 23 24 25 26 27 28 29 30 31 32
[3,] 24 25 26 27 28 29 30 31 32 33
[4,] 25 26 27 28 29 30 31 32 33 34
[5,] 26 27 28 29 30 31 32 33 34 35
[6,] 27 28 29 30 31 32 33 34 35 36
[7,] 28 29 30 31 32 33 34 35 36 37
[8,] 29 30 31 32 33 34 35 36 37 38
[9,] 30 31 32 33 34 35 36 37 38 39
[10,] 31 32 33 34 35 36 37 38 39 40

こういうことか?

594 :132人目の素数さん:2012/07/26(木) 11:55:59.91
>>593さま
そうです!
ありがとうございます!
助かりました

595 :132人目の素数さん:2012/07/26(木) 12:08:58.20
>>594
助かったのなら何よりなんだけど、
宿題の類だったのなら、確認もせずに教育の邪魔をして教員に申し訳ない。

596 :132人目の素数さん:2012/08/05(日) 22:25:40.52
n=1,2,...,Nに対してP(n)のデータがあります
このデータがどの確率分布か言い当てることはできますか

597 :132人目の素数さん:2012/08/05(日) 23:48:09.66
>>596
これまた宿題っぽい。
質問の動機や、動機を得るに至った背景を説明してもらえますか

598 :132人目の素数さん:2012/08/07(火) 01:02:34.43
>>597
R触ってみようと思って最初に思い浮かんだのがこれ
なんだけど探しても見つからないもんだからここで聞くことにした

599 :132人目の素数さん:2012/08/07(火) 04:10:01.29
>>598
ググると「コルモゴロフ-スミルノフ検定」というのが出てきた。


600 :132人目の素数さん:2012/08/07(火) 13:49:09.80
>>596
>>599さんの答えだけだと、初心者はどうしてよいか分からないと思うので助言します。

> RSiteSearch("Kolmogorov-Smirnov")

以上。

601 :132人目の素数さん:2012/08/08(水) 15:54:24.83
Mac版Rのデフォルトでのフォントって何でしたっけ?
コマンド入力中にうっかりよくわからないキー押してしまったみたいでフォントが変わってしまって・・。

602 :baka描 ◆ghclfYsc82 :2012/08/08(水) 17:29:54.67


>14 名前:132人目の素数さん :2012/08/07(火) 17:39:00.96
> >>13
> 旧コテ猫あらため描つまりお前自身の事だろ、増田哲也に限り無く近い人間。
> 筑波大学で痴漢と言えば増田哲也だから連続性も明らかになってるから
> わざわざ限り無く近い人間なんて呼び方しなくていいんだけどな
>


603 :132人目の素数さん:2012/08/08(水) 19:18:57.57
          __ノ)-'´ ̄ ̄`ー- 、_
        , '´  _. -‐'''"二ニニ=-`ヽ、
      /   /:::::; -‐''"        `ーノ
     /   /:::::/           \
     /    /::::::/          | | |  |
     |   |:::::/ /     |  | | | |  |
      |   |::/ / / |  | ||  | | ,ハ .| ,ハ|
      |   |/ / / /| ,ハノ| /|ノレ,ニ|ル' 
     |   |  | / / レ',二、レ′ ,ィイ|゙/   私は只の数ヲタなんかとは付き合わないわ。
.     |   \ ∠イ  ,イイ|    ,`-' |      頭が良くて数学が出来てかっこいい人。それが必要条件よ。
     |     l^,人|  ` `-'     ゝ  |        さらに Ann.of Math に論文書けば十分条件にもなるわよ。
      |      ` -'\       ー'  人          一番嫌いなのは論文数を増やすためにくだらない論文を書いて
    |        /(l     __/  ヽ、           良い論文の出版を遅らせるお馬鹿な人。
     |       (:::::`‐-、__  |::::`、     ヒニニヽ、         あなたの論文が Ann of Math に accept される確率は?
    |      / `‐-、::::::::::`‐-、::::\   /,ニニ、\            それとも最近は Inv. Math. の方が上かしら?
   |      |::::::::::::::::::|` -、:::::::,ヘ ̄|'、  ヒニ二、 \
.   |      /::::::::::::::::::|::::::::\/:::O`、::\   | '、   \
   |      /:::::::::::::::::::/:::::::::::::::::::::::::::::'、::::\ノ  ヽ、  |
  |      |:::::/:::::::::/:::::::::::::::::::::::::::::::::::'、',::::'、  /:\__/‐、
  |      |/:::::::::::/::::::::::::::::::::::::::::::::::O::| '、::| く::::::::::::: ̄|
   |     /_..-'´ ̄`ー-、:::::::::::::::::::::::::::::::::::|/:/`‐'::\;;;;;;;_|
   |    |/::::::::::::::::::::::\:::::::::::::::::::::::::::::|::/::::|::::/:::::::::::/
    |   /:::::::::::::::::::::::::::::::::|:::::::::::::::::::::O::|::|::::::|:::::::::::::::/

604 :132人目の素数さん:2012/08/08(水) 21:07:17.90
          __ノ)-'´ ̄ ̄`ー- 、_
        , '´  _. -‐'''"二ニニ=-`ヽ、
      /   /:::::; -‐''"        `ーノ
     /   /:::::/           \
     /    /::::::/          | | |  |
     |   |:::::/ /     |  | | | |  |
      |   |::/ / / |  | ||  | | ,ハ .| ,ハ|
      |   |/ / / /| ,ハノ| /|ノレ,ニ|ル' 
     |   |  | / / レ',二、レ′ ,ィイ|゙/   私は只の数ヲタなんかとは付き合わないわ。
.     |   \ ∠イ  ,イイ|    ,`-' |      頭が良くて数学が出来てかっこいい人。それが必要条件よ。
     |     l^,人|  ` `-'     ゝ  |        さらに Ann.of Math に論文書けば十分条件にもなるわよ。
      |      ` -'\       ー'  人          一番嫌いなのは論文数を増やすためにくだらない論文を書いて
    |        /(l     __/  ヽ、           良い論文の出版を遅らせるお馬鹿な人。
     |       (:::::`‐-、__  |::::`、     ヒニニヽ、         あなたの論文が Ann of Math に accept される確率は?
    |      / `‐-、::::::::::`‐-、::::\   /,ニニ、\            それとも最近は Inv. Math. の方が上かしら?
   |      |::::::::::::::::::|` -、:::::::,ヘ ̄|'、  ヒニ二、 \
.   |      /::::::::::::::::::|::::::::\/:::O`、::\   | '、   \
   |      /:::::::::::::::::::/:::::::::::::::::::::::::::::'、::::\ノ  ヽ、  |
  |      |:::::/:::::::::/:::::::::::::::::::::::::::::::::::'、',::::'、  /:\__/‐、
  |      |/:::::::::::/::::::::::::::::::::::::::::::::::O::| '、::| く::::::::::::: ̄|
   |     /_..-'´ ̄`ー-、:::::::::::::::::::::::::::::::::::|/:/`‐'::\;;;;;;;_|
   |    |/::::::::::::::::::::::\:::::::::::::::::::::::::::::|::/::::|::::/:::::::::::/
    |   /:::::::::::::::::::::::::::::::::|:::::::::::::::::::::O::|::|::::::|:::::::::::::::/

605 :132人目の素数さん:2012/08/12(日) 19:33:37.42
Rで、グラフとして描画されているデータをテキスト出力出来ますか?

Rを使える人が私以外いないので、
Excelで配布しなければなりません。

今は描画前の関数データを張り付けていますが、
縦軸が変わってしまうので、グラフ描画からそのまま出力したいと思っています。

606 :132人目の素数さん:2012/08/13(月) 09:08:15.60
>>605
意味が分からない。
> Rで、グラフとして描画されているデータをテキスト出力出来ますか?
Rグラフィックで描画するには、描画するためのデータがあると思うのだけど。
もしそうなら、そのままテキスト出力すればよいと思うが、
そんなことをわざわざ質問するとは思えないから、よく分からない。
テキスト出力とExcelの関連も意味不明。
> a <- data.frame(x=runif(10), y=runif(10))
というデータフレームがあったとして、
> plot(a)
とRグラフィックに描画して、次のようにすればテキスト出力される。
> a
x y
1 0.1401729 0.223354073
2 0.8426009 0.880151101
3 0.2795089 0.002605373
4 0.8179064 0.131089282
5 0.3903741 0.580761547
6 0.1708031 0.793535840
7 0.8964184 0.198217040
8 0.6109237 0.136335747
9 0.7519352 0.367561028
10 0.6382441 0.429468494


607 :132人目の素数さん:2012/08/13(月) 09:53:15.56
>>606
なるほど。データフレームにしてしまえばトラブルを解消できそうです。

今まで、xとyを別々に指定するような作業をしていたので気が付きませんでした。
ありがとうございました。

608 :132人目の素数さん:2012/08/26(日) 09:50:32.98
教えてください。

開始日,数
1,5
2,2
3,4
4,8
……
30,5

のような時系列データの信頼区間やピークを求めたいのですが、
解説サイトとかないでしょうか。

609 :132人目の素数さん:2012/08/27(月) 11:10:35.51
>>608
ピークを得るためには、当てはめる関数の形が必要でしょう。
あなたの研究対象に対する先験的知識が本質的に必要だと思われます。

例えばポアソン分布に当てはめられるタイプのデータだと次のようになります。
d <- data.frame(x=1:30, y=round((dpois(1:30,10) + runif(30, max = 0.01))*100))
barplot(d$y, names.arg = 1:30)
こんなサンプルデータで、nls()を使って、
m1 <- nls(y ~ (a * (lambda^x*exp(-lambda)/gamma(x+1)) + b),
start = c(a = 1, b = 1, lambda = 10), data = d)
とすると、
> max(predict(m1))
[1] 13.14048
> which.max(predict(m1))
[1] 9
9日目で最大値13のピークになることが分かります。


610 :132人目の素数さん:2012/09/14(金) 21:05:08.72
windowsXP世代の4GBマシンで100万レコードオーダーのdataframeを
ggplot2で描画しようとするとメモリオーバーになってしまう
なんかうまい方法はないものか

611 :132人目の素数さん:2012/09/15(土) 00:15:23.75
>>610
分割して描画すればどうなる?
ggplot2じゃないけど、例えばこんな風に。
> d <- data.frame(x = runif(100), y = runif(100))
> plot(d[1:25, ], xlim = range(d$x), ylim=range(d$y))
> points(d[26:50, ])
> points(d[51:75, ])
> points(d[76:100, ])

612 :132人目の素数さん:2012/09/15(土) 09:17:37.47
>>611
どうもです
確かに仰る通り、::baseのplotならば可能です

後だしですんませんが
・見た目のキレイさ
(というか先進性というか凄いことやってそうに見せられるというか。。苦笑
・カテゴリカル変数20こ程度
・引き継ぎやデータ更新等を考えて
作図のためのデータハンドリングのコーディングは最少にしたい
・自分自身の興味w

のような趣旨でggplot2でやりたいのです

613 :132人目の素数さん:2012/09/15(土) 20:06:17.90
>>610
32bit?64bit?

614 :132人目の素数さん:2012/09/15(土) 21:09:24.15
>>613
32bitです
会社の端末なんで詳細は不明ですが
5年くらい前の型で家庭用PCです
Rは2.15.0でパッケージは最新です
ggplot2_0.9.2.1


615 :132人目の素数さん:2012/09/15(土) 22:21:52.64
          __ノ)-'´ ̄ ̄`ー- 、_
        , '´  _. -‐'''"二ニニ=-`ヽ、
      /   /:::::; -‐''"        `ーノ
     /   /:::::/           \
     /    /::::::/          | | |  |
     |   |:::::/ /     |  | | | |  |
      |   |::/ / / |  | ||  | | ,ハ .| ,ハ|
      |   |/ / / /| ,ハノ| /|ノレ,ニ|ル' 
     |   |  | / / レ',二、レ′ ,ィイ|゙/   私は只の数ヲタなんかとは付き合わないわ。
.     |   \ ∠イ  ,イイ|    ,`-' |      頭が良くて数学が出来てかっこいい人。それが必要条件よ。
     |     l^,人|  ` `-'     ゝ  |        さらに Ann.of Math に論文書けば十分条件にもなるわよ。
      |      ` -'\       ー'  人          一番嫌いなのは論文数を増やすためにくだらない論文を書いて
    |        /(l     __/  ヽ、           良い論文の出版を遅らせるお馬鹿な人。
     |       (:::::`‐-、__  |::::`、     ヒニニヽ、         あなたの論文が Ann of Math に accept される確率は?
    |      / `‐-、::::::::::`‐-、::::\   /,ニニ、\            それとも最近は Inv. Math. の方が上かしら?
   |      |::::::::::::::::::|` -、:::::::,ヘ ̄|'、  ヒニ二、 \
.   |      /::::::::::::::::::|::::::::\/:::O`、::\   | '、   \
   |      /:::::::::::::::::::/:::::::::::::::::::::::::::::'、::::\ノ  ヽ、  |
  |      |:::::/:::::::::/:::::::::::::::::::::::::::::::::::'、',::::'、  /:\__/‐、
  |      |/:::::::::::/::::::::::::::::::::::::::::::::::O::| '、::| く::::::::::::: ̄|
   |     /_..-'´ ̄`ー-、:::::::::::::::::::::::::::::::::::|/:/`‐'::\;;;;;;;_|
   |    |/::::::::::::::::::::::\:::::::::::::::::::::::::::::|::/::::|::::/:::::::::::/
    |   /:::::::::::::::::::::::::::::::::|:::::::::::::::::::::O::|::|::::::|:::::::::::::::/

616 :132人目の素数さん:2012/09/17(月) 13:49:31.71
ggplotでも分割してできるでしょ。
それでも最後の描画の際にエラーになっちゃうかな?

617 :132人目の素数さん:2012/09/18(火) 00:00:46.90
>>616
はい。
ggplot2オブジェクトにそうさをくわえることはできますが、
プロットするさいにメモリオーバーエラーとなってしまいます。
(プロットせずにggsaveしようとしてもおなじです)

618 :132人目の素数さん:2012/09/18(火) 14:41:03.61
>>617
じゃあ、データを間引きするしか方法がないのでは?

そもそも100万レコードを視覚化するのに、
そのまま100万レコードが必要なのか?
100万からサンプリングして1万で図を描いても同じ図になる気がするぞ。

619 :132人目の素数さん:2012/09/18(火) 23:07:04.27
RにはReduce見たいな機能はないのかな

620 :132人目の素数さん:2012/09/19(水) 00:02:17.70
>>618
そういわれるとそうなのです

ただ、問題は>>617なので、なぜそうなるのか分かって、
そこだけ回避できるようになれればよいのですが・・・


621 :132人目の素数さん:2012/09/19(水) 09:39:21.27
そもそも全部描画できたとして、それは見るに耐えるものなのか?
例えば散布図なんかだと100万点どころか、1万点ですら多すぎて見づらいから、適切に間引くのが普通だ。

622 :132人目の素数さん:2012/09/20(木) 10:57:36.08
>>620
症状から考えて
ggplot2内部的に、
画面表示や画像ファイル保存などの描画時に、
データフレームをSVGみたいな描画用データに変換してから
その描画用データを参照して描画するんだと思う
だから、100万データを扱うことはできても、
グラフ描画(保存も含む)ができない。
しかも、データをどれだけ分割しようと
最終的に描画する際には、
そのグラフに使用する全描画用データを
同時にメモリに保持している必要があるから、
分割が意味をなさない。

だから、どうしても100万データ分使いたいんだったら、
メモリオーバーしない量のデータで一旦画像に保存して、
その画像同士を重ね合わせるみたいな方法をとるしかないかな。
画像処理の手間が必要になりますが。

あるいは、グラフ用のデータを
ダイナミックアロケーションできるような方法が
あるのか知りませんが、なければ作るとか……w

623 :132人目の素数さん:2012/09/20(木) 16:26:54.47
>>622
そうだな。>>622の言うとおり、ベクタ構造を保持するからメモリ不足になる。
適当なインターバルでラスタ変換をかませればよろし。
png()で分割出力して、system("convert ...")で重ねる。

624 :132人目の素数さん:2012/09/20(木) 22:19:32.83
>>622
>>623
なるほど頭の中が整理されました!

・データの分布を壊さずにデータを間引く関数を作る
・分割描画して最後にラスタデータを統合する関数を作る
・高スペックPCを導入する()
のどれかって感じですね!

ちょっと試してみるデス

625 :625:2012/09/21(金) 00:01:09.50
√625 = 25


626 :132人目の素数さん:2012/09/26(水) 20:01:39.27
質問です。
任意の行列xを縦に複数回並べたいです。
こんな感じで書いてみたのですが、
forを使わず作れますか、
rep関数だけで実現できないですか?


mat <- NULL
x <- matrix(1:9, 3, 3)
for(i in 1:5){
mat <- rbind(mat,x)
}
mat



627 :132人目の素数さん:2012/09/26(水) 22:27:54.77
>>626
>rep関数だけで実現できないですか?
できる

ヒント:
> i <- 5; paste("rbind(", paste(rep("x", i), collapse = ","), ")")
[1] "rbind( x,x,x,x,x )"


628 :132人目の素数さん:2012/09/26(水) 23:09:49.40
Reduce(rbind,lapply(1:5,function(x) matrix(1:9,3,3)))

629 :132人目の素数さん:2012/09/26(水) 23:40:06.82
>>627-628 ありがとうございます\(^o^)/

630 :132人目の素数さん:2012/10/01(月) 04:48:45.78
>>628
do.call(rbind,lapply(1:5,function(x) matrix(1:9,3)))
5回じゃなくてもっと沢山くっつけるならdo.callのほうが速いみたい

631 :132人目の素数さん:2012/10/01(月) 23:26:00.72
Rってこれから主流になるんですか?
ビッグデータ界隈でR!R!R!騒がしいです。

632 :132人目の素数さん:2012/10/02(火) 12:27:05.94
主流になるのではないかと言われているけど、必ずそうなるとは言い切れない。
でも使えておいて損はないと思うよ。

633 :132人目の素数さん:2012/10/02(火) 15:05:16.56
>>631
ビッグデータって何GBくらい?

素朴に考えると、Rらしいプログラムの書き方で処理するときには、
データを全てPCのメモリ上に読み込まなければならない。

しかし、オラクルに格納されたデータが、
PC1台のメモリにスッポリ収まるとはとうてい考えられない。

634 :132人目の素数さん:2012/10/02(火) 19:43:58.58
>>633
それは時代遅れ。大規模なデータ処理では、データを固定したまま
処理をおこなう処理系自体をデータのあるところに移動しないと間に合わない。

既に昨年、Oracle社はデータはRDBMS上においたまま Rのコードを
実行できる仕組みを提案してるよ。フロントエンドはRで、実行はRDBMSか、
おそらく Exadata という専用ハードの上で行うと思う。

ttps://blogs.oracle.com/dbjp/entry/bigdata_000217

635 :132人目の素数さん:2012/10/02(火) 20:20:33.97
>>634
なるほど、オラクルサーバがR(互換)インタプリタを内蔵しているというわけですか。
Rが凄いというよりもORACLEの商魂が凄い。

そういえば、DBMSや統計ソフトのベンダーが
「顧客のニーズを読めてませんでした」とか言ったらギャグになる。

636 :132人目の素数さん:2012/10/03(水) 20:37:17.21
>>634
その手の話はOracleに限った話ではない
http://www.revolutionanalytics.com/products/revolution-enterprise-for-ibm-netezza.php

と言うより、Oracle使ってた人がRなんか使うのかね?
そういう人はSASとか使うような気がするが。

637 :132人目の素数さん:2012/10/03(水) 22:48:32.44
>>636
うちはOracleとRを使ってる。会社のデータはOracleで管理してるが、
それを可視化したり、対話的に解析するのにRが便利。
両者はODBCデータソース経由でシームレスに繋がる。

確かにSASはいいんだけどライセンス料金が高いので使える人が
限られてしまうが、Rならそういうこと気にせずに済むのがいい。
ただしRはサポートが課題になりやすいけどね。

もしOracleが有償でもRのサポート提供するなら、それを評価する
企業ユーザもいるんじゃないかな?

638 :132人目の素数さん:2012/10/03(水) 23:16:24.69
Rで分析が済ませるデータ量の会社はそれでもいいけど、そんな会社はDB側もAccessで十分そうね。

639 :132人目の素数さん:2012/10/03(水) 23:33:39.40
Rでは社内で解析したものを環境丸ごと渡して
加工してもらうこともできるのかな?

640 :132人目の素数さん:2012/10/03(水) 23:44:58.20
データサイエンティストとして経験を積むにはどの業界が良いのだろうか?
色々考えてみた。

SNS データ量が多い。分析前提でDBが設計してある。データドリブンが前提
銀行 顧客属性、預貯金データ保有、ローン情報
保険 顧客属性、病歴情報保有
クレジットカード 顧客属性、ローン情報、購買データ保有

SNSかクレジットカードだろうか。

641 :132人目の素数さん:2012/10/03(水) 23:53:37.59
Tポイントカードの新会社だろ、JK!w

642 :132人目の素数さん:2012/10/03(水) 23:56:05.36
POSデータがあれば、どこでもおk

643 :132人目の素数さん:2012/10/04(木) 00:01:14.41
Tポイントカード、POSデータの情報量なんてたかが知れてると思うな。

644 :132人目の素数さん:2012/10/04(木) 00:28:41.27
>>637
SASのライセンス料を気にしてOracleのライセンス料を気にしないのは謎だな
Oracleでまともにビッグデータを扱うと千万円の単位では済まないのに…

645 :132人目の素数さん:2012/10/04(木) 15:32:50.43
企業のことは分からないが、
PostgreSQL + Rという組み合わせは論外なのかな?

646 :132人目の素数さん:2012/10/04(木) 20:11:25.61
>>645
PostgreSQLはBSDライセンスで、RはGPLじゃなかったっけ?
言語処理系部分の流用は出来ないんじゃないの?

647 :132人目の素数さん:2012/10/04(木) 21:31:10.07
>>644
Oracle は基幹系の投資に含めやすいし、実際に支払うライセンス料は
年間サポート料やコンサル費に比べれば大した金額じゃないと思う。
むしろコンサル費がべらぼうに高い。

その延長でゆくと、分析ツールはSASでもRでもいいが、こういう分析ツールを
活用できる社員を育成するのに金が掛かるし、企業での課題だと思う。
ちょっと外れてきたね。

648 :132人目の素数さん:2012/10/04(木) 22:57:30.45
Postgre + R だと生データを直接処理(モデリング)できないでしょ。
それこそ、MapReduceみたいな処理の分散を自分で考えないといけない。

649 :132人目の素数さん:2012/10/05(金) 00:20:41.39
>>626
x <- matrix(1:9, 3)
x[rep(1:3,5),]

650 :132人目の素数さん:2012/10/05(金) 01:07:56.33
          __ノ)-'´ ̄ ̄`ー- 、_
        , '´  _. -‐'''"二ニニ=-`ヽ、
      /   /:::::; -‐''"        `ーノ
     /   /:::::/           \
     /    /::::::/          | | |  |
     |   |:::::/ /     |  | | | |  |
      |   |::/ / / |  | ||  | | ,ハ .| ,ハ|
      |   |/ / / /| ,ハノ| /|ノレ,ニ|ル' 
     |   |  | / / レ',二、レ′ ,ィイ|゙/   私は只の数ヲタなんかとは付き合わないわ。
.     |   \ ∠イ  ,イイ|    ,`-' |      頭が良くて数学が出来てかっこいい人。それが必要条件よ。
     |     l^,人|  ` `-'     ゝ  |        さらに Ann.of Math に論文書けば十分条件にもなるわよ。
      |      ` -'\       ー'  人          一番嫌いなのは論文数を増やすためにくだらない論文を書いて
    |        /(l     __/  ヽ、           良い論文の出版を遅らせるお馬鹿な人。
     |       (:::::`‐-、__  |::::`、     ヒニニヽ、         あなたの論文が Ann of Math に accept される確率は?
    |      / `‐-、::::::::::`‐-、::::\   /,ニニ、\            それとも最近は Inv. Math. の方が上かしら?
   |      |::::::::::::::::::|` -、:::::::,ヘ ̄|'、  ヒニ二、 \
.   |      /::::::::::::::::::|::::::::\/:::O`、::\   | '、   \
   |      /:::::::::::::::::::/:::::::::::::::::::::::::::::'、::::\ノ  ヽ、  |
  |      |:::::/:::::::::/:::::::::::::::::::::::::::::::::::'、',::::'、  /:\__/‐、
  |      |/:::::::::::/::::::::::::::::::::::::::::::::::O::| '、::| く::::::::::::: ̄|
   |     /_..-'´ ̄`ー-、:::::::::::::::::::::::::::::::::::|/:/`‐'::\;;;;;;;_|
   |    |/::::::::::::::::::::::\:::::::::::::::::::::::::::::|::/::::|::::/:::::::::::/
    |   /:::::::::::::::::::::::::::::::::|:::::::::::::::::::::O::|::|::::::|:::::::::::::::/

651 :132人目の素数さん:2012/10/08(月) 17:00:48.41
SNSの出身の人はビジネスセンスに欠ける気がする。
もしかしたら、それは旧時代的なビジネスセンスで、SNS出身の人のは新時代のものかもしれないけど。

・・・ないな。

652 :132人目の素数さん:2012/10/08(月) 17:29:34.67
頭の古い人はいつでも置き去りにされる。

653 :132人目の素数さん:2012/10/08(月) 17:43:54.24
統計解析全体がオカルトだというとらえ方もあるけどね。

> 活用できる社員を育成するのに金が掛かるし、企業での課題だと思う。

亀の甲羅を火にあぶる司祭たち……

654 :132人目の素数さん:2012/10/08(月) 18:07:35.04
          __ノ)-'´ ̄ ̄`ー- 、_
        , '´  _. -‐'''"二ニニ=-`ヽ、
      /   /:::::; -‐''"        `ーノ
     /   /:::::/           \
     /    /::::::/          | | |  |
     |   |:::::/ /     |  | | | |  |
      |   |::/ / / |  | ||  | | ,ハ .| ,ハ|
      |   |/ / / /| ,ハノ| /|ノレ,ニ|ル' 
     |   |  | / / レ',二、レ′ ,ィイ|゙/   私は只の数ヲタなんかとは付き合わないわ。
.     |   \ ∠イ  ,イイ|    ,`-' |      頭が良くて数学が出来てかっこいい人。それが必要条件よ。
     |     l^,人|  ` `-'     ゝ  |        さらに Ann.of Math に論文書けば十分条件にもなるわよ。
      |      ` -'\       ー'  人          一番嫌いなのは論文数を増やすためにくだらない論文を書いて
    |        /(l     __/  ヽ、           良い論文の出版を遅らせるお馬鹿な人。
     |       (:::::`‐-、__  |::::`、     ヒニニヽ、         あなたの論文が Ann of Math に accept される確率は?
    |      / `‐-、::::::::::`‐-、::::\   /,ニニ、\            それとも最近は Inv. Math. の方が上かしら?
   |      |::::::::::::::::::|` -、:::::::,ヘ ̄|'、  ヒニ二、 \
.   |      /::::::::::::::::::|::::::::\/:::O`、::\   | '、   \
   |      /:::::::::::::::::::/:::::::::::::::::::::::::::::'、::::\ノ  ヽ、  |
  |      |:::::/:::::::::/:::::::::::::::::::::::::::::::::::'、',::::'、  /:\__/‐、
  |      |/:::::::::::/::::::::::::::::::::::::::::::::::O::| '、::| く::::::::::::: ̄|
   |     /_..-'´ ̄`ー-、:::::::::::::::::::::::::::::::::::|/:/`‐'::\;;;;;;;_|
   |    |/::::::::::::::::::::::\:::::::::::::::::::::::::::::|::/::::|::::/:::::::::::/
    |   /:::::::::::::::::::::::::::::::::|:::::::::::::::::::::O::|::|::::::|:::::::::::::::/

655 :132人目の素数さん:2012/10/12(金) 10:40:00.67
N行M列のXを
要素M個のリストにしたいです。

x <- matrix(1:9, 3)
x_list <- list(x[,1], x[,2], x[,3])


as.list(x)でやると要素9になってしまいます。
要素M個にしたい場合は、どうすればいいですか?

656 :132人目の素数さん:2012/10/12(金) 11:49:23.96
できました!

split(x, col(x))

>知っているといつか役に立つ(?)関数達 - RjpWiki
(6) ベクトル、行列、データフレームをある性質で分割する、split(x,f)

657 :132人目の素数さん:2012/10/14(日) 11:18:40.27
↓これ、apply系の関数でうまくできないですか?教えてください。

x = matrix(1:12, 3, 4)
y = c(2, 5, 10)

x[1,] + y[1]
x[2,] + y[2]
x[3,] + y[1]

658 :132人目の素数さん:2012/10/14(日) 11:48:08.74
>>657
> x[1,] + y[1]
> x[2,] + y[2]
> x[3,] + y[1]

x[1:3,]+y[c(1,2,1)]

659 :132人目の素数さん:2012/10/15(月) 13:56:05.47
>>657
これでもできる。xに対して縦にしたベクトルを横に走らせながら足し算するみたいな意味。
sweep(x, 1, y[c(1,2,1)], "+")

660 :馬と鹿と豚さん:2012/11/05(月) 13:00:29.47
          __ノ)-'´ ̄ ̄`ー- 、_
        , '´  _. -‐'''"二ニニ=-`ヽ、
      /   /:::::; -‐''"        `ーノ
     /   /:::::/           \
     /    /::::::/          | | |  |
     |   |:::::/ /     |  | | | |  |
      |   |::/ / / |  | ||  | | ,ハ .| ,ハ|
      |   |/ / / /| ,ハノ| /|ノレ,ニ|ル' 
     |   |  | / / レ',二、レ′ ,ィイ|゙/   
.     |   \ ∠イ  ,イイ|    ,`-' |      
     |     l^,人|  ` `-'     ゝ  |        このスレは馬と鹿と豚ばかりね。
      |      ` -'\       ー'  人            
    |        /(l     __/  ヽ、          
     |       (:::::`‐-、__  |::::`、     ヒニニヽ、         
    |      / `‐-、::::::::::`‐-、::::\   /,ニニ、\            
   |      |::::::::::::::::::|` -、:::::::,ヘ ̄|'、  ヒニ二、 \
.   |      /::::::::::::::::::|::::::::\/:::O`、::\   | '、   \
   |      /:::::::::::::::::::/:::::::::::::::::::::::::::::'、::::\ノ  ヽ、  |
  |      |:::::/:::::::::/:::::::::::::::::::::::::::::::::::'、',::::'、  /:\__/‐、
  |      |/:::::::::::/::::::::::::::::::::::::::::::::::O::| '、::| く::::::::::::: ̄|
   |     /_..-'´ ̄`ー-、:::::::::::::::::::::::::::::::::::|/:/`‐'::\;;;;;;;_|
   |    |/::::::::::::::::::::::\:::::::::::::::::::::::::::::|::/::::|::::/:::::::::::/
    |   /:::::::::::::::::::::::::::::::::|:::::::::::::::::::::O::|::|::::::|:::::::::::::::/

661 :132人目の素数さん:2012/11/09(金) 15:34:45.80
これって、Rで描けますか?
http://homepage2.nifty.com/nandemoarchive/toukei_hosoku/gazou/anova_jizen_kentei_03.png

回帰直線の例である、よく教科書に載ってる図で、
「誤差が正規分布」してる様子を表したいです。

確率密度関数のプロット図を横に複数個並べたいんです。

662 :132人目の素数さん:2012/11/09(金) 15:48:43.41
これです。単回帰モデルの図をRで描けますか?
http://t2.gstatic.com/images?q=tbn:ANd9GcSrGXCsyQu2rLsUEyeHakE0NWzk9-6hHsQhc390LDitoxLXxr0UydG2HTDv

663 :132人目の素数さん:2012/11/09(金) 16:13:59.17
>>661
描ける。でもちょっと頭の体操が必要かも。

>>662
同上。でもオレならPGF/Tikzで描くかな。
ttp://www.texample.net/tikz/examples/feature/plotting/

664 :663:2012/11/09(金) 17:14:42.51
時間があったので、コーディングしてみた。
RjpWikiと違って図を載せられないし、半角スペースは削除されるので、
わかりにくいかも知れない。

# サンプルデータ
dat <- data.frame(x = c(rnorm(50) - 2, rnorm(50), rnorm(50) + 2),
g = c(rep("x", 50), rep("y", 50), rep("z", 50)))

# 作図
d <- tapply(dat$x, dat$g, density)
plot(as.numeric(dat$g), dat$x, xlim = c(0, 4), axes = FALSE,
xlab="", ylab="x")
lines(d[[1]]$y + 1, d[[1]]$x)
lines(d[[2]]$y + 2, d[[2]]$x)
lines(d[[3]]$y + 3, d[[3]]$x)
axis(2)
axis(1, at = 1:3, labels = LETTERS[24:26])
あとはsegments()で適当に赤の横破線を引いてくれ

665 :132人目の素数さん:2012/11/09(金) 21:12:18.68
>>664 おぉー!ありがとうございます!!

666 :132人目の素数さん:2012/11/28(水) 20:53:30.87
初心者ですがロジットモデルを作る際に
Lapack routine dgesv:システムは正確に特異です という意味不明なメッセージが...
変数ごとの尺度が違いすぎると発生するってことで一部に1/100したりしてみたけど
変わらず出てしまう...「そのエラー文こんな場合に出てくるでー」みたいなのあれば教えて頂けるとありがたいです.

667 :132人目の素数さん:2012/11/28(水) 21:07:45.01
ロジットモデルが何か知らないけど、
エラー文でググると、

>分散共分散行列の行列式が正定値では無いため

668 :132人目の素数さん:2012/11/28(水) 21:27:27.31
>>667
ありがとうございます!
分散共分散行列、正定値か...初めての単語です.
調べてみようっと

669 :132人目の素数さん:2012/11/28(水) 22:30:52.44
>>666
singularって単数と思っていたが、数学では「特異」なんだな。
勉強になった。

670 :132人目の素数さん:2012/11/29(木) 22:21:50.04
>>669
singular matrixって、逆行列を持たない行列。つまり
1 2
2 4
とか、そういうやつじゃないの?

Octaveでそういうのをやると

octave-3.2.4.exe> A=[[1,2];[3,4]]
A =

1 2
3 4

octave-3.2.4.exe> inv(A)
ans =

-2.00000 1.00000
1.50000 -0.50000

octave-3.2.4.exe:> A=[[1,2];[2,4]]
A =

1 2
2 4

octave-3.2.4.exe> inv(A)
warning: inverse: matrix singular to machine precision, rcond = 0
ans =

Inf Inf
Inf Inf

671 :132人目の素数さん:2012/11/30(金) 15:39:16.01
sortとprintとあわせて使えませんか?

672 :132人目の素数さん:2012/12/01(土) 09:59:19.11
2012/12/01 10:00〜

R研究集会 「データ解析環境Rの整備と利用」2012
http://live.nicovideo.jp/watch/lv116268591

673 :132人目の素数さん:2012/12/03(月) 20:43:08.44
>>671
それは質問かい?
それとも上のどこかの書き込みの対する助言かい?

674 :132人目の素数さん:2012/12/04(火) 10:40:04.46
すみません、質問です

id time sex
1 13 male
2 24 female
・・・
てな感じのデータ(population)を、timeでヒストグラムを書いた時にsexで色分けしたいのですが
基本グラフィックを使った方法で何か良いのは無いでしょうか?

ちなみにggplot2だと以下のコマンドで出来ますが、基本グラフィックで書く必要があります
ggplot(population, aes(time, fill=sex))+geom_histogram()

675 :132人目の素数さん:2012/12/04(火) 11:26:35.26
>>674
hist()はグループ分けができません。

> set.seed(1234)
> a <- data.frame(time = round(rnorm(100)^2*10+5), sex = sample(as.factor(c("male", "female")), 100, replace = TRUE))
と適当なサンプルで、
> max(a$time)
[1] 70
なので、0から100まで10刻みで頻度を計算して棒グラフを書けばよいのでは。

> brks <- (0:5)*4
> b <- cbind(table(findInterval(a$time[a$sex == "male"], brks)), table(findInterval(a$time[a$sex == "female"], brks)))
> barplot(t(b), beside = TRUE, names.arg = brks[as.integer(row.names(b))])

参考まで。

676 :132人目の素数さん:2012/12/05(水) 08:26:29.52
>>675
なるほど、histはグループ分けが出来ないのですね・・・
アドバイスに従って棒グラフで作成してみます
回答ありがとうございました

677 :132人目の素数さん:2012/12/18(火) 04:57:50.10
リストの各要素を変数に代入したいです。
今は↓こんな感じでやってるのですが、要素数が増えると面倒で、
良いやり方があれば教えてください。

m = list(1, 2, 3, 4)

a = m[[1]]
b = m[[2]]
c = m[[3]]
d = m[[4]]

678 :132人目の素数さん:2012/12/18(火) 07:38:18.90
lapply(1:4, function(k) assign(letters[k], m[[k]], envir = .GlobalEnv))
うーん、あんま短くないか。

679 :132人目の素数さん:2012/12/18(火) 11:05:31.28
>>677
>>678が示すように、assignを使えばよいよ。

for()を使うならこんか感じ。

## mを適当に用意
m <- lapply(1:4,function(x){sample(month.name, 3)})

v.name <- letters[1:4] #変数名を準備
for(i in 1:length(v.name)) assign(v.name[i], m[[i]])

>>678
試さないで質問して申し訳ないけど、.GlovalEnvの指定は必須?
envirの指定を省略すれば.GlovalEnvになるのかなとと思って。

680 :132人目の素数さん:2012/12/18(火) 14:51:39.01
>>678-679 できました。ありがとうございます!

681 :132人目の素数さん:2012/12/21(金) 23:08:27.59
データフレームがあって、A列にコード、B列にファクター値が入っております。
このデータフレームをファクター値によって5分割したいのですが、
ループを使わない簡単な方法ありますでしょうか?

現在はquantile関数とforループを併用しております。

よろしくお願いいたします。

682 :132人目の素数さん:2012/12/22(土) 05:08:48.15
>>681
>ファクター値
どういう意味?
因子型変数が内部で保持している実体の整数型の値のこと?
例を示してくれないと、その説明ではどうしたいのか分からない。

683 :132人目の素数さん:2012/12/22(土) 06:30:38.17
>>681
split(x, x$B)
ってこと?

684 :681:2012/12/22(土) 09:52:42.80
>>682,>>683
ありがとうございます。

説明が悪くて申し訳ありません。
ファクター値は因子ではありません。
只の実数値の意味です。

DF
CODE DATA
"A" 1
"B" 2
"C" 3
"D" 4
"E" 5

と単純なデータフレームを考えた場合、
DATAの大きさでデータフレームを分割し5個のデータフレームにしたいのです。
現状はforループとquantile(DF$B, prob = i / 5)という関数を用いて分割している次第です。

よろしくお願いいたします。

685 :132人目の素数さん:2012/12/22(土) 12:16:27.28
>>684
意味が全く分からないのはオレだけか?
そもそもDF$Bやiはどこから出てきたんだ。
data.frameの要素にdata.frameを入れた階層構造なのか?

もしかすると、こういうことか?
> DF <- data.frame(CODE = sample(LETTERS, 100, replace = TRUE), DATA = sample(1:5, 100, replace = TRUE))
というDFがあったとして、
> lapply(unique(DF$DATA), function(x){DF[DF$DATA == x, ]})
とすると5つのデータフレームをもつリストが出来る。

686 :681:2012/12/22(土) 12:33:52.37
>>685
申し訳ありません。DF$BではなくDF$DATAです。

ご提示していただいた例ですとDATAが整数の場合には正しく分割できるのですが、
実際には整数ではなく実数値です。

例えば、
DF <- data.frame(rand)
colnames(DF) <- c("a", "b", "c")

というデータフレームを作成した場合、DF$bの大きさで任意の分位に分割したいのです。。。。

687 :132人目の素数さん:2012/12/22(土) 13:38:29.27
>>686
まだ意味が分からないorz
回答する側に憶測に憶測を重ねさせる質問の仕方はどうなのか、
後出しがガシガシ出てくる質問の態度はいかがかと思うが、
丁寧な口調なので、もう1度だけ「想像」した範囲で答える。

> DF <- data.frame(a = runif(100), b = runif(100), c = runif(100))
というDFがあったとして、DF$bを任意の分位、たとえば、0.1と0.3と0.5と0.9で区切って5分割したいとする。
> i <- findInterval(DF$b, c(0.1, 0.3, 0.5, 0.9))
> lapply(unique(i), function(x){DF$b[x == i]})
これで5分割されたデータのリストが得られる。
データフレーム構造を保持したいという話なら、
> lapply(unique(i), function(x){DF[x == i, ]})

これでも、これが質問の意図と異なるなら、他の人にパス。

688 :687:2012/12/22(土) 13:51:45.59
unique(i)だと区分の順番が気になるので、順番通りにするように修正
> lapply(0:max(i), function(x){DF$b[x == i]})
および
> lapply(0:max(i), function(x){DF[x == i, ]})

689 :132人目の素数さん:2012/12/22(土) 20:11:43.37
改行、空白がなくて読みにくコードを
見やすく自動で整形する方法ってありますか?

他の言語だと整形ツールがあるんだけど
Rにもあるのかな

690 :132人目の素数さん:2012/12/22(土) 23:19:32.32
>>689
外部ツールとしてはないけど、そういう関数もある(名前は忘れた)。

691 :681:2012/12/23(日) 01:16:13.76
>>687
ありがとうございます。
分位は等分位です。
quantileで分位点を求めて、教えていただいた方法で無事いけました。

質問の仕方が悪かったようで申し訳ありませんでした。
以後気を付けたいと思います。

本当にありがとうございました

692 :132人目の素数さん:2012/12/23(日) 20:34:14.28
>>689
https://github.com/yihui/formatR/wiki

693 :令嬢:2012/12/23(日) 23:13:41.87
          __ノ)-'´ ̄ ̄`ー- 、_
        , '´  _. -‐'''"二ニニ=-`ヽ、
      /   /:::::; -‐''"        `ーノ
     /   /:::::/           \
     /    /::::::/          | | |  |
     |   |:::::/ /     |  | | | |  |
      |   |::/ / / |  | ||  | | ,ハ .| ,ハ|
      |   |/ / / /| ,ハノ| /|ノレ,ニ|ル' 
     |   |  | / / レ',二、レ′ ,ィイ|゙/   私は只の数ヲタなんかとは付き合わないわ。
.     |   \ ∠イ  ,イイ|    ,`-' |      頭が良くて数学が出来てかっこいい人。それが必要条件よ。
     |     l^,人|  ` `-'     ゝ  |        さらに Ann.of Math に論文書けば十分条件にもなるわよ。
      |      ` -'\       ー'  人          一番嫌いなのは論文数を増やすためにくだらない論文を書いて
    |        /(l     __/  ヽ、           良い論文の出版を遅らせるお馬鹿な人。
     |       (:::::`‐-、__  |::::`、     ヒニニヽ、         あなたの論文が Ann of Math に accept される確率は?
    |      / `‐-、::::::::::`‐-、::::\   /,ニニ、\            それとも最近は Inv. Math. の方が上かしら?
   |      |::::::::::::::::::|` -、:::::::,ヘ ̄|'、  ヒニ二、 \
.   |      /::::::::::::::::::|::::::::\/:::O`、::\   | '、   \
   |      /:::::::::::::::::::/:::::::::::::::::::::::::::::'、::::\ノ  ヽ、  |
  |      |:::::/:::::::::/:::::::::::::::::::::::::::::::::::'、',::::'、  /:\__/‐、
  |      |/:::::::::::/::::::::::::::::::::::::::::::::::O::| '、::| く::::::::::::: ̄|
   |     /_..-'´ ̄`ー-、:::::::::::::::::::::::::::::::::::|/:/`‐'::\;;;;;;;_|
   |    |/::::::::::::::::::::::\:::::::::::::::::::::::::::::|::/::::|::::/:::::::::::/
    |   /:::::::::::::::::::::::::::::::::|:::::::::::::::::::::O::|::|::::::|:::::::::::::::/

694 :132人目の素数さん:2012/12/25(火) 01:22:28.37
各位に使用できる数字(または文字)に制限がある
n桁の整数(文字列)を生成したい。

1桁目: 1, 2
2桁目: 4, 5, 6
3桁目: 7, 8

この場合だと 2*3*2 = 12 通りの整数が作れます。
forを3重にすればできるのですが、このやり方は避けたい。
n桁になっても対応できるコードを書きたいです。

いいやり方、教えてください。

695 :132人目の素数さん:2012/12/25(火) 10:23:00.30
>>694
またまた説明不足で不明瞭な質問が来た。同じ人か。

例では、3桁の12種類全ての整数(文字列)を得たいのか、
それとも1つの3桁の整数(文字列)を得たいのか、
判然としない。

後者と想定して、例示すると、
a <- list()
a[[1]] <- 1:2
a[[2]] <- 4:6
a[[3]] <- 7:8
というリストがあった場合、
> paste(sapply(a, sample, 1), collapse = "")
[1] "247"

aの要素数がn個でも(つまり、n桁でも)同じ。

696 :132人目の素数さん:2012/12/25(火) 21:10:27.10
前者です。

[,1] [,2] [,3]
[1,] 1 4 7
[2,] 1 4 8
[3,] 1 5 7
[4,] 1 5 8
[5,] 1 6 7
[6,] 1 6 8
[7,] 2 4 7
[8,] 2 4 8
[9,] 2 5 7
[10,] 2 5 8
[11,] 2 6 7
[12,] 2 6 8

697 :695:2012/12/25(火) 21:25:57.68
>>696
それなら、expand.grid()を再帰的に使えば良い。
入れ子にするのは面倒なので二項演算子を定義すると、
> "%+%" <- function(x, y) apply(expand.grid(x, y), 1, paste, collapse = "")
> a[[1]] %+% a[[2]] %+% a[[3]]
[1] "147" "247" "157" "257" "167" "267" "148" "248" "158" "258" "168" "268"

あとはRecall()を使って、これを一般化すれば良い。
> f696 <- function(x) { f <- function(i){ if(i > 0) return(Recall(i - 1) %+% x[[i]])
+ else return("")}
+ return(f(length(x)))
+ }
> f696(a)
[1] "147" "247" "157" "257" "167" "267" "148" "248" "158" "258" "168" "268"

次に質問するときは、最初から>>696のように書いた方が良いよ。
または、
> forを3重にすればできるのですが、
この具体的なコードを書くとか。抽象的に説明すると、解釈の余地に幅が生まれる。

698 :132人目の素数さん:2012/12/25(火) 21:29:26.76
>>697 親切にありがとうございます。精進します!

699 :695:2012/12/25(火) 21:31:46.70
あぁ、すまない。
n桁の整数は連結させるのではなく、
桁をばらばらにして行列にしたかったのか。
それなら話はもっと簡単だ。
pasteの処理をやめれば良い

700 :132人目の素数さん:2012/12/25(火) 22:31:04.88
expand.grid(a)
(function() as.matrix((expand.grid(a)->x)[do.call(order, x),]))()

701 :132人目の素数さん:2012/12/26(水) 09:37:32.22
>>700
あぁ、しまった。expand.grid()は3次元次元でも使えたのか。

>>700さんの別解。rev()を2重に使う。
as.matrix(rev(expand.grid(rev(a))))

702 :令嬢:2012/12/26(水) 21:17:40.81
          __ノ)-'´ ̄ ̄`ー- 、_
        , '´  _. -‐'''"二ニニ=-`ヽ、
      /   /:::::; -‐''"        `ーノ
     /   /:::::/           \
     /    /::::::/          | | |  |
     |   |:::::/ /     |  | | | |  |
      |   |::/ / / |  | ||  | | ,ハ .| ,ハ|
      |   |/ / / /| ,ハノ| /|ノレ,ニ|ル' 
     |   |  | / / レ',二、レ′ ,ィイ|゙/   
.     |   \ ∠イ  ,イイ|    ,`-' |      
     |     l^,人|  ` `-'     ゝ  |        このスレには馬と鹿と豚さんしかいないのね。
      |      ` -'\       ー'  人            
    |        /(l     __/  ヽ、          
     |       (:::::`‐-、__  |::::`、     ヒニニヽ、         
    |      / `‐-、::::::::::`‐-、::::\   /,ニニ、\            
   |      |::::::::::::::::::|` -、:::::::,ヘ ̄|'、  ヒニ二、 \
.   |      /::::::::::::::::::|::::::::\/:::O`、::\   | '、   \
   |      /:::::::::::::::::::/:::::::::::::::::::::::::::::'、::::\ノ  ヽ、  |
  |      |:::::/:::::::::/:::::::::::::::::::::::::::::::::::'、',::::'、  /:\__/‐、
  |      |/:::::::::::/::::::::::::::::::::::::::::::::::O::| '、::| く::::::::::::: ̄|
   |     /_..-'´ ̄`ー-、:::::::::::::::::::::::::::::::::::|/:/`‐'::\;;;;;;;_|
   |    |/::::::::::::::::::::::\:::::::::::::::::::::::::::::|::/::::|::::/:::::::::::/
    |   /:::::::::::::::::::::::::::::::::|:::::::::::::::::::::O::|::|::::::|:::::::::::::::/

703 :132人目の素数さん:2012/12/26(水) 23:44:03.23
>>701
revの二重使いは柔軟な思考ですね。参考になりました。

704 :◆yEy4lYsULH68 :2012/12/27(木) 09:03:34.27


>増田哲也こそ笑い者。
>俺が逮捕されて懲戒免職させる日本こそ沈めって、一発逆転をねらっている愚民そのもの。
>

705 :132人目の素数さん:2012/12/29(土) 23:41:13.98
データフレームにあるQ01, Q02, Q03, Q04...というような連番の変数って、分析の際にまとめて指定することはできないのでしょうか。
SASでQ01-Q50などとやるようなことをしたいのですが、方法がわかりません。ご存知の方、お教えください。
50項目で主成分分析をしようなどという場合を考えると、気が遠くなります。

706 :132人目の素数さん:2012/12/30(日) 07:20:47.80
http://knowledge-bank.org/social/politics/?main=./003//001

707 :132人目の素数さん:2012/12/30(日) 08:39:23.19
>>705
outcome ~ .
って指定するとすべての変数が入る

708 :132人目の素数さん:2012/12/30(日) 11:33:43.75
>>705
できるけど、"Q01-Q50"のような記法ではできない。
>>707が助言するようにまるごと入れることもできるし、
paste()とas.formula()をつかって長いformulaを作成することもできる。
formulaのヘルプにある例
> xnam <- paste0("x", 1:25)
> (fmla <- as.formula(paste("y ~ ", paste(xnam, collapse= "+"))))
y ~ x1 + x2 + x3 + x4 + x5 + x6 + x7 + x8 + x9 + x10 + x11 +
x12 + x13 + x14 + x15 + x16 + x17 + x18 + x19 + x20 + x21 +
x22 + x23 + x24 + x25

709 :132人目の素数さん:2012/12/30(日) 12:25:38.54
>>707,708
ありがとうございます。
これで、エクセルのオートフィルで変数リスト作成してRのコンソールに貼り付ける作業から解放されます。

710 :132人目の素数さん:2012/12/30(日) 14:53:50.70


711 :132人目の素数さん:2012/12/30(日) 14:55:00.08
私はR言語で学習をしている初心者です。
その中で、irisデータを用いてコマンドの学習をしているのですがエラーが出てしまい先に進めなくなってしまいました。
以下にコマンドを載せますものが私の用いたものです。

library(rpart)
library(adabag)
data <- iris
ndata <- nrow(data)
#乱数指定
set.seed(101)
#学習データ(data.learn)とテストデータ(data.test)に分ける
ridx <- sample(ndata, ndata * 0.5)
data.learn <- data[ridx,]
data.test <- data[-ridx,]

#3-fold crossvalidation、弱識別器の数を10とし、学習データに対しboostingを行ったものをdata.adaCvに代入
data.adaCv <- boosting.cv(Species ~ .,data = data.learn,v=3, mfinal = 10)

#テストデータに学習データを照らし合わせる。
resultPredict <- predict(data.adaCv, newdata = data.test, type="class")

というコマンドですが「predict」を行った際に

以下にエラー UseMethod("predict") :
'predict' をクラス "character" のオブジェクトに適用できるようなメソッドがありません

というエラーが出てしまい、ネットや参考文献を見てもわからず投稿させていただきました。
もしこのエラーの解決方法がお分かりのかたがいらっしゃいましたらよろしくお願いします。

712 :695:2012/12/30(日) 20:21:19.02
>>711
>以下にエラー UseMethod("predict") :
>'predict' をクラス "character" のオブジェクトに適用できるようなメソッドがありません
分かるも何も、書いてあるままだよ。
> class(data.adaCv)
[1] "list"
boosting.cv()は、predictメソッドをもつクラスを吐かず、単純にlistクラスを吐く。
それだけの話。

713 :132人目の素数さん:2012/12/30(日) 20:22:36.64
>>712
名前欄にゴミが入ったorz

714 :132人目の素数さん:2012/12/30(日) 23:08:32.14
>>712さん>>711です。回答ありがとうございます。
実行してみたところおっしゃたように"list"と出力されました。
ということはboosting.cvで得られた変数(data.adaCv)を用いての
predictはできないということでしょうか?
また、もしできるのであればそのコマンドと使用例を教えていただきたいです。
宜しくお願いします。

715 :132人目の素数さん:2012/12/31(月) 15:27:18.84
          __ノ)-'´ ̄ ̄`ー- 、_
        , '´  _. -‐'''"二ニニ=-`ヽ、
      /   /:::::; -‐''"        `ーノ
     /   /:::::/           \
     /    /::::::/          | | |  |
     |   |:::::/ /     |  | | | |  |
      |   |::/ / / |  | ||  | | ,ハ .| ,ハ|
      |   |/ / / /| ,ハノ| /|ノレ,ニ|ル' 
     |   |  | / / レ',二、レ′ ,ィイ|゙/   
.     |   \ ∠イ  ,イイ|    ,`-' |      
     |     l^,人|  ` `-'     ゝ  |        このスレには馬と鹿と豚さんしかいないのね。
      |      ` -'\       ー'  人            
    |        /(l     __/  ヽ、          
     |       (:::::`‐-、__  |::::`、     ヒニニヽ、         
    |      / `‐-、::::::::::`‐-、::::\   /,ニニ、\            
   |      |::::::::::::::::::|` -、:::::::,ヘ ̄|'、  ヒニ二、 \
.   |      /::::::::::::::::::|::::::::\/:::O`、::\   | '、   \
   |      /:::::::::::::::::::/:::::::::::::::::::::::::::::'、::::\ノ  ヽ、  |
  |      |:::::/:::::::::/:::::::::::::::::::::::::::::::::::'、',::::'、  /:\__/‐、
  |      |/:::::::::::/::::::::::::::::::::::::::::::::::O::| '、::| く::::::::::::: ̄|
   |     /_..-'´ ̄`ー-、:::::::::::::::::::::::::::::::::::|/:/`‐'::\;;;;;;;_|
   |    |/::::::::::::::::::::::\:::::::::::::::::::::::::::::|::/::::|::::/:::::::::::/
    |   /:::::::::::::::::::::::::::::::::|:::::::::::::::::::::O::|::|::::::|:::::::::::::::/

716 :132人目の素数さん:2013/01/02(水) 11:10:09.30
ビギニングス to Rって読んだけど
プログラミング言語の解説というかRをアプリケーションとしてみた解説って感じで
言語的なことはほとんど勉強になりませんでしたね。
やっぱ俺はS言語の本読むべきでしたね。

717 :132人目の素数さん:2013/01/04(金) 09:40:38.25
>>716
ttp://www.amazon.co.jp/dp/4873115795
ttp://www.amazon.co.jp/dp/4621061313

718 :132人目の素数さん:2013/01/04(金) 10:07:16.37
>>714
Rjpwikiの方に書いたからもういいと思うのだけど、念のため。
boosting.cvの中身は見た?
bootsting()とpredict.boosting()を中で使っているよね。
> boosting.cv
function (formula, data, v = 10, boos = TRUE, mfinal = 100, coeflearn = "Breiman",
control)
{
vardep <- data[, as.character(formula[[2]])]
n <- length(vardep)
if (v > n)
stop(" v should be in [2, n]")
if (v < 2)
stop(" v should be in [2, n]")
predclass <- rep("O", n)
for (i in 1:v) {
test <- v * (0:floor(n/v)) + i
test <- test[test < n + 1]
fit <- boosting(formula, data[-test, ], boos, mfinal,
coeflearn, control = control)
fit.predict <- predict.boosting(fit, data[test, ])
predclass[test] <- fit.predict$class
cat("i: ", c(i, date()), "\n")
}
tabla <- table(predclass, vardep, dnn = c("Predicted Class",
"Observed Class"))
error <- 1 - sum(predclass == vardep)/n
output <- list(class = predclass, confusion = tabla, error = error)
}
<environment: namespace:adabag>
このfit.predictが欲しいなら、自分でbooting.cv()をコピーして編集すればよい。
そうじゃないなら、何をしたいのか、もっとはっきり伝えること。

719 :132人目の素数さん:2013/01/05(土) 03:55:18.11
>>716
Rノウハウ本の購入層はやりたい解析があってそこまでたどり着ければいい
って人が大多数なんじゃないかな、んでそれにあわせた内容になってると
+αを求める人は多くは無いと思う

720 :132人目の素数さん:2013/01/05(土) 12:25:03.16
<スプライン補間:yからxを予測する方法>

質問です。

x<-c(1,2,3,4,5,6)
y<-c(1,4,9,7,6,8)
というデータがあったとして、
sp<-smooth.spline(x,y)
predict(sp,x=2.5)
とすると、xが2.5のときのyの値は下記のように予測できます。
$x
[1] 2.5
$y
[1] 6.923206

逆にyからxを求める方法がお分かりの方、いらっしゃいましたらお教えください。

721 :132人目の素数さん:2013/01/05(土) 14:02:30.39
>>720
stats:::predict.smooth.spline.fitにざっと目を通した限りは、
できなさそうだけど。
GAMFIT (http://lib.stat.cmu.edu/general/gamfit)の中までは読んでいない。

sp$fitの中身を使って数学的に解くか、xを細かい間隔でpredict()に与えて、
与えられたyに最も近いものを選ぶしかなさそうだが、
ちゃんとした識者に答えてもらった方がよいかも。

後者なら、
predict.y <- function(y){
x0 <- c(1, 2, 3, 4, 5, 6)
y0 <- c(1, 4, 9, 7, 6, 8)
sp <- smooth.spline(x0, y0)
i <- seq(from = min(x0), to = max(x0), by = 0.0001)
Y <- predict(sp, i)
j <- which.min((Y$y - y)^2)
return(list(y = y, x = i[j], fitted = Y$y[j]))
}
こんな感じでよいのでは。
> predict.y(2.345)
$y
[1] 2.345

$x
[1] 1.4487

$fitted
[1] 2.345004

722 :132人目の素数さん:2013/01/05(土) 14:47:31.66
          __ノ)-'´ ̄ ̄`ー- 、_
        , '´  _. -‐'''"二ニニ=-`ヽ、
      /   /:::::; -‐''"        `ーノ
     /   /:::::/           \
     /    /::::::/          | | |  |
     |   |:::::/ /     |  | | | |  |
      |   |::/ / / |  | ||  | | ,ハ .| ,ハ|
      |   |/ / / /| ,ハノ| /|ノレ,ニ|ル' 
     |   |  | / / レ',二、レ′ ,ィイ|゙/   私は只の数ヲタなんかとは付き合わないわ。
.     |   \ ∠イ  ,イイ|    ,`-' |      頭が良くて数学が出来てかっこいい人。それが必要条件よ。
     |     l^,人|  ` `-'     ゝ  |        さらに Ann.of Math に論文書けば十分条件にもなるわよ。
      |      ` -'\       ー'  人          一番嫌いなのは論文数を増やすためにくだらない論文を書いて
    |        /(l     __/  ヽ、           良い論文の出版を遅らせるお馬鹿な人。
     |       (:::::`‐-、__  |::::`、     ヒニニヽ、         あなたの論文が Ann of Math に accept される確率は?
    |      / `‐-、::::::::::`‐-、::::\   /,ニニ、\            それとも最近は Inv. Math. の方が上かしら?
   |      |::::::::::::::::::|` -、:::::::,ヘ ̄|'、  ヒニ二、 \
.   |      /::::::::::::::::::|::::::::\/:::O`、::\   | '、   \
   |      /:::::::::::::::::::/:::::::::::::::::::::::::::::'、::::\ノ  ヽ、  |
  |      |:::::/:::::::::/:::::::::::::::::::::::::::::::::::'、',::::'、  /:\__/‐、
  |      |/:::::::::::/::::::::::::::::::::::::::::::::::O::| '、::| く::::::::::::: ̄|
   |     /_..-'´ ̄`ー-、:::::::::::::::::::::::::::::::::::|/:/`‐'::\;;;;;;;_|
   |    |/::::::::::::::::::::::\:::::::::::::::::::::::::::::|::/::::|::::/:::::::::::/
    |   /:::::::::::::::::::::::::::::::::|:::::::::::::::::::::O::|::|::::::|:::::::::::::::/

723 :132人目の素数さん:2013/01/05(土) 16:46:53.71
>721
ありがとうございました。参考になりました。

724 :132人目の素数さん:2013/01/05(土) 20:24:09.52
          __ノ)-'´ ̄ ̄`ー- 、_
        , '´  _. -‐'''"二ニニ=-`ヽ、
      /   /:::::; -‐''"        `ーノ
     /   /:::::/           \
     /    /::::::/          | | |  |
     |   |:::::/ /     |  | | | |  |
      |   |::/ / / |  | ||  | | ,ハ .| ,ハ|
      |   |/ / / /| ,ハノ| /|ノレ,ニ|ル' 
     |   |  | / / レ',二、レ′ ,ィイ|゙/   
.     |   \ ∠イ  ,イイ|    ,`-' |      
     |     l^,人|  ` `-'     ゝ  |        このスレには馬と鹿と豚さんしかいないのね。
      |      ` -'\       ー'  人            
    |        /(l     __/  ヽ、          
     |       (:::::`‐-、__  |::::`、     ヒニニヽ、         
    |      / `‐-、::::::::::`‐-、::::\   /,ニニ、\            
   |      |::::::::::::::::::|` -、:::::::,ヘ ̄|'、  ヒニ二、 \
.   |      /::::::::::::::::::|::::::::\/:::O`、::\   | '、   \
   |      /:::::::::::::::::::/:::::::::::::::::::::::::::::'、::::\ノ  ヽ、  |
  |      |:::::/:::::::::/:::::::::::::::::::::::::::::::::::'、',::::'、  /:\__/‐、
  |      |/:::::::::::/::::::::::::::::::::::::::::::::::O::| '、::| く::::::::::::: ̄|
   |     /_..-'´ ̄`ー-、:::::::::::::::::::::::::::::::::::|/:/`‐'::\;;;;;;;_|
   |    |/::::::::::::::::::::::\:::::::::::::::::::::::::::::|::/::::|::::/:::::::::::/
    |   /:::::::::::::::::::::::::::::::::|:::::::::::::::::::::O::|::|::::::|:::::::::::::::/

725 :132人目の素数さん:2013/01/07(月) 16:01:51.28
>>716
いまさらだけどビギニングス ガイド イン Rのミススペルな。

726 :132人目の素数さん:2013/01/07(月) 18:48:16.16
>>725
ttp://www.amazon.com/dp/0387938362
これのことか?
でも「ビギニングス ガイド イン R」じゃないぞ。

727 :132人目の素数さん:2013/01/09(水) 09:49:00.54
またミスすぺるブチこみました。
正確には
ビギニングス ガイド イン R
でした。

728 :132人目の素数さん:2013/01/11(金) 23:37:12.84
以下のようなデータフレームを仮定
コード 日付1 日付2 日付3 データ1 データ2 データ3
0001 201201 201103 201003 52 33 34
0002 201203 NA NA 22 NA 3
0003 201103 201001 200901 32 2 73
0004 201003 200905 200804 98 87 88
0005 NA NA NA NA NA NA
0006 201105 201102 201009 NA 32 55

日付XとデータXが対応
日付1>日付2>日付3となっている

この時、日付が201101よりも大きい日付に対応するNAでないデータを取得したい
即ち望まれる出力は以下の通り

コード 日付 データ
0001 201201 52
0002 201203 22
0003 201103 32
0004 NA NA
0005 NA NA
0006 201102 32

このように取得したい場合どのような操作をすればよいでしょうか?
実際には数千のコードがあるのでループで一行ずつ回すのはあまり現実的ではありません。

よろしくお願いします

729 :132人目の素数さん:2013/01/12(土) 03:32:35.10
>>728
宿題じゃないよね?
> a <- scan(text="0001 201201 201103 201003 52 33 34
+ 0002 201203 NA NA 22 NA 3
+ 0003 201103 201001 200901 32 2 73
+ 0004 201003 200905 200804 98 87 88
+ 0005 NA NA NA NA NA NA
+ 0006 201105 201102 201009 NA 32 55")
Read 42 items
> b <- data.frame(t(matrix(a, ncol = 6)))
> names(b) <- c("コード", paste0("日付", 1:3), paste0("データ", 1:3))
で、ヒントは次の通り。
> m <- ((b[, 2:4] > 201101) & (b[, 2:4] & b[, 5:7])) * b[, 2:4]
> m[(m == 0)] <- NA
> i <- apply(m, 1, which.max)
> unlist(sapply(1:length(i), function(j){ifelse(length(i[j][[1]]) == 0, NA, (b[j, 5:7])[i[j][[1]]])}))
[1] 52 22 32 NA NA 32
> unlist(sapply(1:length(i), function(j){ifelse(length(i[j][[1]]) == 0, NA, (b[j, 2:4])[i[j][[1]]])}))
[1] 201201 201203 201103 NA NA 201102

730 :132人目の素数さん:2013/01/13(日) 13:37:10.99
正規分布の乱数を作って、確率密度(面積)の合計が1になるのを
確認したいのですが、↓だと何故か2になってしまいます。
どこがダメなんだしょう?

x = rnorm(500)
hist(x, prob=T)
sum(hist(x, prob=T)$density)

731 :132人目の素数さん:2013/01/13(日) 13:52:12.00
>>730
乱数の分散を変えてみると、理解出来るのでは?
> set.seed(1234); sum(hist(rnorm(500, sd = 2), prob = TRUE)$density)
[1] 1
> set.seed(1234); sum(hist(rnorm(500, sd = 5), prob = TRUE)$density)
[1] 0.2
> set.seed(1234); sum(hist(rnorm(500, sd = .1), prob = TRUE)$density)
[1] 20

732 :132人目の素数さん:2013/01/13(日) 15:13:55.16
>>731
わからないよ (´・ω・`)

sum(hist(x, prob=T)$density)

sum(hist(x, prob=T)$count/500)
は同じになると思ったんだけど、違うってことですかね??

733 :132人目の素数さん:2013/01/14(月) 13:24:07.24
>>732
730 の最後の式では、確率密度の積分 ∫f(x) dx = 1 の dx の部分が
抜けてしまっています。
hist を用いる場合、dx に相当する値は
diff(hist(x, prob=T)$breaks) で求めることができます。

x <- rnorm(500)
h <- hist(x, prob=T)
sum(h$density * diff(h$breaks))

734 :132人目の素数さん:2013/01/14(月) 22:54:04.42
>>733 理解できました!
ありがとうございます!

735 :132人目の素数さん:2013/01/16(水) 12:15:17.92
質問失礼します

言語を英語にすると、立ち上げた際のメッセージなどはきちんと英語になるのですが、
cor.test()などの関数を実行すると出力が日本語メッセージでかえってきます
日本語のwinOSでRの返答を完全に英語にする方法をどなたかご存知ないでしょうか?

ちなみに↓サイトの起動アイコンカスタマイズの方法で英語化しています
ttp://minato.sip21c.org/swtips/R.html

736 :132人目の素数さん:2013/01/16(水) 12:41:27.37
>>735
妙な挙動ですね。WindowsだとLANG=Cがどこかで強制的に書き換えられるのでしょうか。
Sys.getenv()で、メッセージが日本語になる前後でLANGやLC_ALLを確認してみてはどうでしょうか。
LANGを確認するには、Sys.getenv("LANG")とすればOKです。

なお、メッセージの言語を指定する環境変数はLC_MESSAGESです。

環境変数によるローケルの管理を知っておいても損はないと思います。
例えば、ttp://www.itmedia.co.jp/enterprise/articles/0605/16/news027.html
の「環境変数の階層」とかに目を通すとか。

737 :736:2013/01/16(水) 12:54:26.20
追記。
ttp://www.itmedia.co.jp/enterprise/articles/0605/16/news027.html
を読んで思い出したが、昔、起動アイコンに、LANG=Cじゃなくて、language=enをつけていた。

「R language=en」でググるとCRANのR for Windows FAQがヒット。
ttp://cran.r-project.org/bin/windows/base/rw-FAQ.html

... if you want to ensure that menus and messages are in (American) English, LANGUAGE=en.
とか、
You can ensure that R uses English messages by appending LANGUAGE=en to the shortcut
you use to start R, or setting it in the Rconsole file.
って書いてあるよ。FAQに。

738 :132人目の素数さん:2013/01/16(水) 23:32:51.99
>>729
遅くなりましたがありがとうございました。
無事動作しました。

739 :728:2013/01/16(水) 23:41:01.80
すいません。
再び質問です。

横型ではなく縦型の場合はいかがでしょうか?

以下のようなデータフレームを仮定します
コード 日付 データ
0001 20120101 332
0001 20120111 542
0002 20120201 5554
0002 20120301 52334
0002 20120511 15234
0003 20121101 35234
0003 20121201 NA
0004 20120501 75234
0005 20120601 NA

各コードに対してデータがNAでない日付が最大の値を取得したいのです。
NAしかない場合にはその値を取得します。
上記の場合以下の値が期待されます。

コード 日付 データ
0001 20120111 542
0002 20120511 15234
0003 20121101 35234
0004 20120501 75234
0005 20120601 NA

ヒントだけでも結構ですのでよろしくお願いいたします。

740 :132人目の素数さん:2013/01/17(木) 00:37:07.40
mac版のRでの質問、失礼します。
ローカルに保存したCSVファイルではなく、直接ダウンロード、読込みをするファイルの文字化けを解消したいのですが、
エンコードを変える記述では上手くいきません。
ご教示いただけないでしょうか?

例)

url.data <- "http://maxis.muam.jp/e/fund/download/"
eMAXIS <- read.table(url.data, sep=",", stringsAsFactor = FALSE)

741 :132人目の素数さん:2013/01/17(木) 14:18:27.23
>>740
fileEncoding = "SJIS"
オプションとかではダメってこと?

742 :132人目の素数さん:2013/01/17(木) 14:25:14.37
>>739
plyrにあるddply()でIDで分割してwhich.max()で日付が最大のところのindexをとって、その場所の数字を取ればいいかな。

NAの処理を条件分岐を使わないでやるなら、ID日付でソートしたうえで、ddply()の中でzooのna.locf()を使えばいいか?

結構重くなってしまうかも。

743 :132人目の素数さん:2013/01/17(木) 19:30:55.74
          __ノ)-'´ ̄ ̄`ー- 、_
        , '´  _. -‐'''"二ニニ=-`ヽ、
      /   /:::::; -‐''"        `ーノ
     /   /:::::/           \
     /    /::::::/          | | |  |
     |   |:::::/ /     |  | | | |  |
      |   |::/ / / |  | ||  | | ,ハ .| ,ハ|
      |   |/ / / /| ,ハノ| /|ノレ,ニ|ル' 
     |   |  | / / レ',二、レ′ ,ィイ|゙/   
.     |   \ ∠イ  ,イイ|    ,`-' |      
     |     l^,人|  ` `-'     ゝ  |        このスレは馬と鹿と豚さんばかりね。
      |      ` -'\       ー'  人            
    |        /(l     __/  ヽ、          
     |       (:::::`‐-、__  |::::`、     ヒニニヽ、         
    |      / `‐-、::::::::::`‐-、::::\   /,ニニ、\            
   |      |::::::::::::::::::|` -、:::::::,ヘ ̄|'、  ヒニ二、 \
.   |      /::::::::::::::::::|::::::::\/:::O`、::\   | '、   \
   |      /:::::::::::::::::::/:::::::::::::::::::::::::::::'、::::\ノ  ヽ、  |
  |      |:::::/:::::::::/:::::::::::::::::::::::::::::::::::'、',::::'、  /:\__/‐、
  |      |/:::::::::::/::::::::::::::::::::::::::::::::::O::| '、::| く::::::::::::: ̄|
   |     /_..-'´ ̄`ー-、:::::::::::::::::::::::::::::::::::|/:/`‐'::\;;;;;;;_|
   |    |/::::::::::::::::::::::\:::::::::::::::::::::::::::::|::/::::|::::/:::::::::::/
    |   /:::::::::::::::::::::::::::::::::|:::::::::::::::::::::O::|::|::::::|:::::::::::::::/

744 :132人目の素数さん:2013/01/17(木) 22:40:29.47
>>742
ありがとうございます。
ddplyで無事いけました。
20万行程度のデータフレームですが、数秒で完了するので問題ありませんでした。

745 :132人目の素数さん:2013/01/18(金) 01:06:24.60
>>741
すみません。勘違いしてました。
オプションでいけました。
ご指摘ありがとうございます。

746 :132人目の素数さん:2013/01/26(土) 23:13:16.48
RMySQLがインストールできず困っています。

> install.packages("RMySQL", type="source")
Installing package(s) into ‘D:/program_files/R-2.15.2/library’
(as ‘lib’ is unspecified)
URL 'http://cran.rstudio.com/src/contrib/RMySQL_0.9-3.tar.gz' を試しています
Content type 'application/x-gzip' length 165363 bytes (161 Kb)
開かれた URL
downloaded 161 Kb

* installing *source* package 'RMySQL' ...
** パッケージ 'RMySQL' の解凍およびMD5サムの検証に成功しました
checking for $MYSQL_HOME... D:program_filesMySQL
MYSQL_HOME is set but does not point to a directory
ERROR: configuration failed for package 'RMySQL'
* removing 'D:/program_files/R-2.15.2/library/RMySQL'
Warning in install.packages :
命令 'D:/PROGRA~1/R-215~1.2/bin/x64/R CMD INSTALL -l "D:/program_files/R-2.15.2/library" C:\Users\<<User>>\AppData\Local\Temp\RtmpmAoBu3/downloaded_packages/RMySQL_0.9-3.tar.gz' の実行は状態 1 を持ちました
Warning in install.packages :
installation of package ‘RMySQL’ had non-zero exit status

The downloaded source packages are in
‘C:\Users\<<User>>\AppData\Local\Temp\RtmpmAoBu3\downloaded_packages’

が出て、MYSQL_HOMEの値がダメなんだと思いますが、mysql自体にはパスが通るので合ってるはずです。どこが悪いんでしょうか?

747 :132人目の素数さん:2013/01/27(日) 08:48:14.43
>>746
これってソースしかないの?

748 :746:2013/01/27(日) 23:38:33.32
ごめんなさい。自己解決しました
やっぱりMYSQL_HOMEの値がおかしかったようです。

749 :132人目の素数さん:2013/02/01(金) 10:37:40.43
win版のRについて質問があります
Rjpwikiの時間の数値変換を、使っているデータの時間フォーマットにあわせてアレンジしてるんですが
date2num <- function(x, ...) {
.day <- as.numeric(substr(x,10,11))
.hour <- as.numeric(substr(x,13,14))
.minute <- as.numeric(substr(x,16,17))
.second <- as.numeric(substr(x,19,20))
.year <- as.numeric(substr(x,2,5))
.mon <- as.numeric(substr(x,7,8))
a <- .day - 1
b <- .year - 1970
c <- 1
if(.mon==2) c <- 31
else if(.mon==3) c <- 59
else if(.mon==4) c <- 90
else if(.mon==5) c <- 120
else if(.mon==6) c <- 151
else if(.mon==7) c <- 181
else if(.mon==8) c <- 212
else if(.mon==9) c <- 243
else if(.mon==10) c <- 273
else if(.mon==11) c <- 304
else if(.mon==12) c <- 334
else if(.mon==1) c <-0
else m <-1

750 :132人目の素数さん:2013/02/01(金) 10:40:10.94
file<-sprintf("%03d",.mon)
cat(file) # 画面に出力
cat("\n") # 改行コード
file<-sprintf("%03d",a)
cat(file) # 画面に出力
cat("\n") # 改行コード
file<-sprintf("%03d",c)
cat(file) # 画面に出力
cat("\n") # 改行コード
c<-c+a
file<-sprintf("%03d",c)
cat(file) # 画面に出力
cat("\n") # 改行コード
return(b*31556926+c*86400+a*86400+.hour*3600+.minute*60+.second)
}
これに" 2012/11/30 16:50:00"のような時刻データを
date,sum
2012/12/05 20:30:00,17012
2012/12/05 20:30:00,16512
2012/12/05 19:53:00,16512
2012/12/05 19:53:00,16012
以上のようなデータフレームで入力しているのですが
月を調べているif文が1度しか動きません
if文が問題なのだと思っているのですがどう直せばよいものでしょうか

751 :132人目の素数さん:2013/02/01(金) 11:19:52.70
>>750
よく分からない。date2numの引数はxだけなのに、なんで、dateとsumのデータフレームを入れるの?
それに、月を7文字目と8文字目ってしているけど、6文字目と7文字目じゃないの?

> date2num("2012/12/05 20:30:00")
以下にエラー if (.mon == 2) c <- 31 else if (.mon == 3) c <- 59 else if (.mon == (from #11) :
TRUE/FALSE が必要なところが欠損値です
[snip]

再現できるように質問しようよ。

もっと言えば、
> as.numeric(as.POSIXlt("2012/12/05 20:30:00"))
[1] 1354707000
とかを使うのは嫌いなの?

752 :132人目の素数さん:2013/02/01(金) 12:21:01.54
すみません 単純に使い方が分からず力技でどうにかやってみた感じだったのでこういう形になっていました
自分の力が及ばないせいでデータファイルを作るとき時刻データの前にどうしても消えない半角スペースがあって
それで6番目と7番目ではなく7番目8番目になっていますorz

それと
> as.numeric(as.POSIXlt("2012/12/05 20:30:00"))
[1] 1354707000
これをみて目からうろこでした、自分のやってたことの馬鹿さ加減にあきれました
御助言ありがとうございました

753 :132人目の素数さん:2013/02/01(金) 13:26:36.91
>>752
>時刻データの前にどうしても消えない半角スペース
関数を自作するレベルなのになぜw

例えば、
> (a <- c(" 2013-02-01 13:21:17", "2013-01-01 09:21:17", " 2013-03-01 11:21:17"))
[1] " 2013-02-01 13:21:17" "2013-01-01 09:21:17" " 2013-03-01 11:21:17"
こんな感じで、時刻前に空白があったりなかったりするなら、

> library(stringr)
> str_trim(a)
[1] "2013-02-01 13:21:17" "2013-01-01 09:21:17" "2013-03-01 11:21:17"
これでよいのでは?
オプションなしでは、前後の空白を取り除くから、前だけならそのように指定する。

754 :132人目の素数さん:2013/02/01(金) 13:49:46.73
なるほど、Rの方でtrimするって手もありましたね
なにからなにまでありがとうございます

755 :132人目の素数さん:2013/02/01(金) 14:11:14.62
>>754
>Rの方でtrimするって手もありましたね

別にRの外でも、どこででも空白を削除すれば良いと思う。
例えば下記のようなcsvがあったら、
$ cat tmp.csv
"A","B","C"
"BE DAC","Jan",0.35
"AC BDE","Feb",0.34
" EBACD","Mar",0.66
" DABEC","Apr",0.44
"BEA CD","May",0.84
"CDA EB","Jun",0.3
"EDCAB ","Jul",0.59
"CBEA D","Aug",0.53
"ECDA B","Sep",0.44
"ABDCE ","Oct",0.33
$ sed -e 's/¥" ¥([^ ,]*¥)/¥"¥1/g' tmp.csv
"A","B","C"
"BE DAC","Jan",0.35
"AC BDE","Feb",0.34
"EBACD","Mar",0.66
"DABEC","Apr",0.44
"BEA CD","May",0.84
"CDA EB","Jun",0.3
"EDCAB ","Jul",0.59
"CBEA D","Aug",0.53
"ECDA B","Sep",0.44
"ABDCE ","Oct",0.33
とすると3,4行目にあった文字列前の空白を消せる。

756 :132人目の素数さん:2013/02/02(土) 10:13:07.27
Win版Rで質問失礼します
http://cse.naro.affrc.go.jp/takezawa/r-tips/r/43.html
上記サイトの複数の列に対してソートを行う場合は関数を使用して
同じように
a b c
11 1 2 11
12 1 1 12
9 2 4 9
10 2 3 10
7 3 6 7
8 3 5 8
5 5 8 5
6 5 7 6
4 7 9 4
1 9 12 1
2 9 11 2
3 9 10 3
というデータフレームをaを昇順に整列しaで同じものがあった場合はcの小さいものを上にするようにしたいのですが
In Ops.factor(mmm, each) : < 因子に対しては無意味です というエラーが出てうまくいきません
どこが問題でしょうか?

757 :132人目の素数さん:2013/02/02(土) 10:18:28.45
データフレーム訂正します
a b c
1 2 11
1 1 12
2 4 9
2 3 10
3 6 7
3 5 8
5 8 5
5 7 6
7 9 4
9 12 1
9 11 2
9 10 3
です
実際にはデータフレーム名test1で
sortlist <- order(test1$a, pmax(test1$a,test1$c))
test1[sortlist,]
以上に実行しました

758 :756,757:2013/02/02(土) 10:45:26.08
すいません 自己解決しました

759 :132人目の素数さん:2013/02/02(土) 11:01:54.12
>>758
複数カラムをキーにしたソートなんて考えたことがなかった。
いったいどんなときに必要になるの?
# 表計算ソフトのように「見せる」目的なら理解できるけど。

760 :132人目の素数さん:2013/02/02(土) 11:09:52.57
順位相関などを見るときにそういう処理をする可能性はあると思う

761 :132人目の素数さん:2013/02/02(土) 12:03:35.44
再び質問失礼します
a,b
3,5
2,3
2,2
2,1
1,3
1,1
a列は必ず降順になっているときに
b列が降順になっていないとき
この例では5行目1,3ですが
これを削除したいのですが 関数化して自動で判別して削除したいです
どのようにしたら良いでしょうか

762 :132人目の素数さん:2013/02/02(土) 12:16:56.00
複数の列でのソートは
doByパッケージのorderBy()が使いやすい。

763 :132人目の素数さん:2013/02/02(土) 12:36:52.26
>>761

pmax()というのを初めて知った。

bの列を一行下げて頭にInfをいれたものをcとしてデータフレームにいれる、bとcに対してpmax()して、結果をdとしてデータフレームにいれる。dがbと一致しているところを落とす。

でどうだろう?

764 :761:2013/02/02(土) 13:18:11.28
>>763
御助言ありがとうございます
しかし当方最近Rを使いだしたもので何をどうすればいいのか分かりません・・・
あつかましいのですが具体的にどんな感じに書けばいいでしょうか

765 :132人目の素数さん:2013/02/02(土) 14:23:56.55
>>764
dat = read.csv(text = "a,b
3,5
2,3
2,2
2,1
1,3
1,1")

dat

dat$c = c(Inf , head(dat$b, -1))

dat

with(dat, pmax(b, c))

dat$d = with(dat, pmax(b, c)) == dat$c

dat

dat[dat$d,]

を想定。関数化されてないけど。もっと大きい例で動くはチェックしていない。

766 :132人目の素数さん:2013/02/02(土) 15:20:57.47
>>763さんの解答にインスパイアされた別解。

> dat = read.csv(text = "a,b
+ 3,5
+ 2,3
+ 2,2
+ 2,1
+ 1,3
+ 1,1")
> dat[c(TRUE, diff(dat$b) < 0), ]
a b
1 3 5
2 2 3
3 2 2
4 2 1
6 1 1

767 :132人目の素数さん:2013/02/02(土) 15:35:34.61
>>766の追記。

bが例えば、10, 8, 6, 9, 8, 5とかになっていると、
>>766の方法を1回だけ適用したのでは通用しない。

> d2
a b
1 3 10
2 2 8
3 2 6
4 2 9
5 1 8
6 1 5
> d2[c(TRUE, diff(d2$b) < 0), ]
a b
1 3 10
2 2 8
3 2 6
5 1 8
6 1 5

そのため、十分な回数を繰り返し適用することになる。
> sum(diff(d2$b) > 0)
[1] 1
これが0になるのが、終了条件。

768 :132人目の素数さん:2013/02/02(土) 19:57:32.38
cummin
を使えばいいか?

769 :132人目の素数さん:2013/02/03(日) 12:03:27.26
これなら1,9,8,1の並びも一回で行けるか?

dat = read.csv(text = "a,b
3,5
2,3
2,2
2,1
1,9
1,8
1,1")

dat

dat$cummin <- cummin(dat$b)

dat$correct <- with(dat, b == cummin)

dat

dat[dat$correct == TRUE,]

770 :132人目の素数さん:2013/02/03(日) 13:34:45.07
r-base-core がみつからないとか言われるでござる…

771 :132人目の素数さん:2013/02/03(日) 22:46:23.58
ビッグデータに関する本で
膨大なデータを統計処理して活用するために
RやJavaのhadoopが使える人材が求められてるって書いてあったな

772 :132人目の素数さん:2013/02/05(火) 08:32:45.91
すみません、グラフで箱の左下をゼロで直交するようにしたいのですが (軸オンリーではなく箱で書きたいのです)、
Baseパッケージで何か良い方法ありませんでしょうか?
今は↓のように書いていますが、ablineで線を引くとはみ出してしまう等手間がかかるので、
簡単にかける方法をご存知の方おりましたらお願いします

plot(x=0,y=0,xlim=c(0,6),ylim=c(0,3),lwd=2,ann=F,cex.axis=1,las=1,type="n",axes=F)
axis(side=1,seq(0,6),lab=F,pos=0,tck=0); axis(side=2,seq(0,3),lab=F,tck=0,pos=0)
axis(side=3,at=0:6,lab=F,tck=0,pos=3); axis(side=4,at=0:3,tck=0,lab=F,pos=6)
axis(side=1,at=0,tck=0,pos=0)

>>735-37
レス忘れていました、申し訳ありません
Rconsoleが2つ存在し妙な読み込みがされていたのが原因でした
アドバイスありがとうございました

773 :132人目の素数さん:2013/02/05(火) 09:04:30.55
>>772
> plot.new()
> box()
とすると、左下に原点が来るけど。
> points(0, 0)

774 :132人目の素数さん:2013/02/05(火) 09:17:22.01
>>773の追記

R的なアプローチとして、複雑な手続きを関数化して簡単にする方法がある。

f772 <- function(){
plot(x=0,y=0,xlim=c(0,6),ylim=c(0,3),lwd=2,ann=F,cex.axis=1,las=1,type="n",axes=F)
axis(side=1,seq(0,6),lab=F,pos=0,tck=0); axis(side=2,seq(0,3),lab=F,tck=0,pos=0)
axis(side=3,at=0:6,lab=F,tck=0,pos=3); axis(side=4,at=0:3,tck=0,lab=F,pos=6)
axis(side=1,at=0,tck=0,pos=0)
}

とスクリプトの最初に書いておけば、
> f772()
以降は、これだけでよい。Baseパッケージのコマンドを探すよりも簡単。

775 :132人目の素数さん:2013/02/06(水) 03:22:55.78
xaxs/yaxs (AXis Style)のことか
plot(1,1, xaxs = "i", yaxs = "i", xlim = c(0,1), ylim = c(0,1), tck = 0)
?parでbaseの細かいオプションの説明がみられる。

これも役立つかも
www.stat.auckland.ac.nz/~paul/RG2e/chapter3.html

776 :132人目の素数さん:2013/02/06(水) 06:43:29.05
          __ノ)-'´ ̄ ̄`ー- 、_
        , '´  _. -‐'''"二ニニ=-`ヽ、
      /   /:::::; -‐''"        `ーノ
     /   /:::::/           \
     /    /::::::/          | | |  |
     |   |:::::/ /     |  | | | |  |
      |   |::/ / / |  | ||  | | ,ハ .| ,ハ|
      |   |/ / / /| ,ハノ| /|ノレ,ニ|ル' 
     |   |  | / / レ',二、レ′ ,ィイ|゙/   私は只の数ヲタなんかとは付き合わないわ。
.     |   \ ∠イ  ,イイ|    ,`-' |      頭が良くて数学が出来てかっこいい人。それが必要条件よ。
     |     l^,人|  ` `-'     ゝ  |        さらに Ann.of Math に論文書けば十分条件にもなるわよ。
      |      ` -'\       ー'  人          一番嫌いなのは論文数を増やすためにくだらない論文を書いて
    |        /(l     __/  ヽ、           良い論文の出版を遅らせるお馬鹿な人。
     |       (:::::`‐-、__  |::::`、     ヒニニヽ、         あなたの論文が Ann of Math に accept される確率は?
    |      / `‐-、::::::::::`‐-、::::\   /,ニニ、\            それとも最近は Inv. Math. の方が上かしら?
   |      |::::::::::::::::::|` -、:::::::,ヘ ̄|'、  ヒニ二、 \
.   |      /::::::::::::::::::|::::::::\/:::O`、::\   | '、   \
   |      /:::::::::::::::::::/:::::::::::::::::::::::::::::'、::::\ノ  ヽ、  |
  |      |:::::/:::::::::/:::::::::::::::::::::::::::::::::::'、',::::'、  /:\__/‐、
  |      |/:::::::::::/::::::::::::::::::::::::::::::::::O::| '、::| く::::::::::::: ̄|
   |     /_..-'´ ̄`ー-、:::::::::::::::::::::::::::::::::::|/:/`‐'::\;;;;;;;_|
   |    |/::::::::::::::::::::::\:::::::::::::::::::::::::::::|::/::::|::::/:::::::::::/
    |   /:::::::::::::::::::::::::::::::::|:::::::::::::::::::::O::|::|::::::|:::::::::::::::/

777 :132人目の素数さん:2013/02/06(水) 17:31:58.49
>>773-775
レスありがとうございます
非常に参考になりました

778 :132人目の素数さん:2013/02/15(金) 09:19:22.40
barplot と plotを重ねるときに、
軸(目盛の位置)がずれてしまうのですが、
揃える方法ってあるのでしょうか?


barplot(1:10, xlim=c(0,10), ylim=c(0,10))
par(new=T)
plot(1:10, col=2, xlim=c(0,10), ylim=c(0,10))

779 :132人目の素数さん:2013/02/15(金) 10:52:07.52
>>778
よく分からないが、
> a <- barplot(1:10); points(a, 1:10, col = 2)
こうしたいの?

780 :132人目の素数さん:2013/02/15(金) 11:18:55.04
>>779 

縦軸の0の位置が、barplot と plot で違うんで揃えたいんです。

781 :132人目の素数さん:2013/02/15(金) 11:34:08.72
>>780
いや、そもそも揃っているけど。
> a <- barplot(1:10); points(a, rep(0, 10), col = 2)

782 :781:2013/02/15(金) 11:39:38.94
>>780
あっ、分かった。plot()を無理矢理使っているんだ。
addオプションをサポートしているクラス以外では、plot()を重ねるのは禁止。
想定外の使用形態。
描画を重ねるとき、普通はpoints()やlines()やaxis()を使う。

783 :132人目の素数さん:2013/02/15(金) 11:44:27.17
>>782 なるほど。ありがとうございます。

784 :781:2013/02/15(金) 11:53:12.37
ちょっと説明が不親切だったかも知れないから、追記。

例えば、棒グラフと折れ線グラフを重ねたかったら、次のようにする。

x <- 1:10
n <- length(x)
y <- jitter(rep(10, n), 10)

op <- par(mai = c(1.02, 0.82, 0.82, 0.82))
a <- barplot(x, ylim = c(0, 13))
points(a, y, type = "l", lty = 2)
axis(4, label = (0:6) * 2 / 100, at = (0:6) * 2, las = 2)
par(op)

785 :132人目の素数さん:2013/03/09(土) 12:17:39.65
結局、Rで中程度規模のデータを高速に集計できるパッケージ(関数)ってなんなの?
plyr : 中規模以上のデータで遅すぎ(idataframe使ってもそこまで変わらず)
aggregate : 普通
sqldf : まとも、でもRっぽくない。

他にお勧めがあったら教えて

786 :132人目の素数さん:2013/03/13(水) 01:03:30.88
教えて下さい。
rawデータをcharacterにしたいです。

chromeの localstorageのデータを整理しようとしています。
ドメインごとのsqlite形式?ファイルがあり、ItemTableというテーブル名で、
key,valueの項目でデータが入っています。
valueのデータ形式がblob型です。

RSQLiteで、
ret <- dbGetGuery(con, "select value ItemTable")
でデータフレームでデータが返って来ました。
class(ret[1,1][[1]])
>> raw

それで、これから先、
ret[1,1][[1]] を characterにしたのですが、
どうすればいいのでしょうか?

787 :132人目の素数さん:2013/03/13(水) 12:10:10.92
>>786
内部でSQLiteを使っているソフトが最近多いなと思っていたが、
Chromeもそうなんだ。

再現して検証できない質問なので、適当な回答になるけど、
as.character(ret[1,1][[1]])でどのようなエラーになりますか?

788 :786:2013/03/13(水) 12:57:52.15
>>787
ありがとうございます。

chrome側のconsoleで、 localstorage.hoge = "abc" として、
sqlteデータを入れた時に、

R側でそのblob型のデータ(abcというデータ, 他のsqlite viewerで確認済み) を読むと、
> ret[3,2][[1]]
[1] 32 00 30 00 31 00 33 00 2d 00 30 00 33 00 2d 00 31 00 32 00 54 00 31 00 34
[26] 00 3a 00 33 00 35 00 3a 00 35 00 30 00 2e 00 31 00 34 00 33 00 5a 00

となり、
as.character(ret[3,2][[1]])
[1] "32" "00" "30" "00" "31" "00" "33" "00" "2d" "00" "30" "00" "33" "00" "2d"
[16] "00" "31" "00" "32" "00" "54" "00" "31" "00" "34" "00" "3a" "00" "33" "00"
[31] "35" "00" "3a" "00" "35" "00" "30" "00" "2e" "00" "31" "00" "34" "00" "33"
[46] "00" "5a" "00"

となります。
こういうのを16進数のbyteデータというのですよね?
これをcharacterにencode?してやりたいです。

789 :132人目の素数さん:2013/03/13(水) 13:54:01.89
>>788
元データのエンコードが分からないと厳しいと思います。日本語でしょうか。
英語(ASCII)なら、
rawToChar(ret[3,2][[1]])とするとうまく行くかも知れません。

790 :789:2013/03/13(水) 15:25:46.98
>>788
ちゃんと読んでいませんでした。申し訳ない。
これは「abc」という文字列なんですね。

ちなみに"abc"の8進数表記は次の通り
$ echo abc | od -to1c
0000000 141 142 143 012
a b c \n

10進数表記
$ echo abc | od -td1c
0000000 97 98 99 10
a b c \n

16進数表記
$ echo abc | od -tx1c
0000000 61 62 63 0a
a b c \n

>>788 を見る限り、abcじゃなさそうに思える。
16進数と仮定すると、
2 NUL 0 NUL 1 NUL 3 NUL - NUL 3 NUL -
NUL 1 NUL 2 NUL T NUL 1 NUL 4 NUL : NUL 3 NUL
5 NUL : NUL 5 NUL 3 NUL . NUL 1 NUL 4 NUL 3
NUL Z NUL
となるが、NULを飛ばすと、2013-3-12T14:35:53.143Zで、日付時間っぽいな。
これ以上は分からないので、識者の方にパス。

791 :132人目の素数さん:2013/03/13(水) 15:28:55.56
>>789
ありがとうございます。
かなり前進しました。
さきほど、データの提示は、間違え(一つずれたものでした)

"abc"というデータを入れたときは、
ret[4,2][[1]]
[1] 61 00 62 00 63 00
rawToChar(ret[4,2][[1]],multiple=T)
[1] "a" "" "b" "" "c" ""
なぜか、空文字が入りますがOKです。

また、日本語の場合ですが、

私のwindows環境の文字コードは、cp932だと思います。
>Sys.getlocale()
[1] "LC_COLLATE=Japanese_Japan.932;LC_CTYPE=Japanese_Japan.932;......."

それで、データとして  "あい" と localstorageに入れて、
RSQLiteでとりだしたところ、
ret[5,2][[1]]
[1] 42 30 44 30
となり、
これは、文字コード表を見ると、
unicode (あい) => UTF16形式 3042 3044 と、
2バイトの間隔で前後入れ替えしたものに見えます。

mapply(function(a,b)paste(b,a,sep=""), x[seq(1,3,2)], x[seq(2,4,2)])
[1] "3042" "3044"

これを、"あい" という文字で、
できれば、UTF8形式でファイルにおとしたいのですが、、

792 :132人目の素数さん:2013/03/13(水) 15:31:21.55
>>789 さん
返事が入れ違いになりました。
"abc"ではなく、日付でした。
間違えてました。

793 :132人目の素数さん:2013/03/13(水) 21:35:55.82
データの補間について質問させてください
下記のようなCSVファイル(,区切り)が存在します。ID、NAME、MONTHは各情報の最初の行にしかデータとして入っておりません。
---------- データ部 ----------
ID, NAME, MONTH, PRICE, NUMBER
AAA1, Apple, 1, 100, 10
, , , 98, 12
, , , 102, 8
AAA2, Orange, 2, 120, 3
, , , 130, 4
, , , 112, 8
------------------------------
これをデータフレームとして読み込みます。

ID NAME MONTH PRICE NUMBER
AAA1 Apple 1 100 10
"" "" "" 98 12
"" "" "" 102 8
AAA2 Orange 2 120 3
"" "" "" 130 4
"" "" "" 112 8
.......
となります。
ここでID NAME MONTHを上の行から補間したいのですが、どのようにすればよいでしょうか?

ID NAME MONTH PRICE NUMBER
AAA1 Apple 1 100 10
AAA1 Apple 1 98 12
AAA1 Apple 1 102 8
AAA2 Orange 2 120 3
AAA2 Orange 2 130 4
........
としたいです。補間さえできれば形式はデータフレームでなくても結構です。よろしくお願いいたします。

794 :786:2013/03/13(水) 22:48:40.11
>>793
http://stackoverflow.com/questions/2776135/last-observation-carried-forward-in-a-data-frame
を参考にするといいよ。

""をNAに変えておかないといけないので、

df[ df == ""] <- NA
としておいて、

library(zoo)
na.locf(df)

まだ、rawデータからcharacterに変えられてない、、、

795 :132人目の素数さん:2013/03/14(木) 09:59:33.96
>>793
単純にコピーするだけでは駄目なの?
> sample <- data.frame(matrix(c("AAA1","Apple",1,100,10,
+ "","","",98,12,
+ "","","",102,8,
+ "AAA2","Orange",2,120,3,
+ "","","",130,4,
+ "","","",112,8), ncol = 5, byrow = TRUE))
> names(sample) <- c("ID", "NAME", "MONTH", "PRICE", "NUMBER")
> sample
ID NAME MONTH PRICE NUMBER
1 AAA1 Apple 1 100 10
2 98 12
3 102 8
4 AAA2 Orange 2 120 3
5 130 4
6 112 8
> for(i in 1:(nrow(sample) - 1)){
+ if(sample[i+1, 1] == ""){
+ sample[i+1, 1:3] <- sample[i, 1:3]
+ }
+ }
> sample
ID NAME MONTH PRICE NUMBER
1 AAA1 Apple 1 100 10
2 AAA1 Apple 1 98 12
3 AAA1 Apple 1 102 8
4 AAA2 Orange 2 120 3
5 AAA2 Orange 2 130 4
6 AAA2 Orange 2 112 8

796 :793:2013/03/14(木) 22:00:08.24
>>794
ありがとうございます。
無事うまくいけました。
質問に答えることができればよかったのですが、
残念ながら私にはわかりません。申し訳ありません。

>>795
実際のデータは100万行ほどありますので、
ループを回すと試してはいませんが時間がかかるかと。。。。

797 :794:2013/03/15(金) 15:10:27.37
>>796
いえいえ。
791の疑問は、説明の仕方が悪い気がする。
単純な文字コードの問題なのだろうけど、そこのところがよくわかてっない。
他の言語でやりますのでOKです。

798 :132人目の素数さん:2013/04/02(火) 00:12:39.59
DMwR::SMOTE関数のエラーについて教えてください。

以下の処理を実行するとエラーになります。
library( DMwR )

work00 <- data.frame( kbn=c(rep("A",12),rep("B",3)) , tuikavar=c(rnorm(12,20),rnorm(3,2)) )
SMOTE( kbn ~ . , data=work00 , perc.over=200 , perc.under=100 )

>以下にエラー `colnames<-`(`*tmp*`, value = c("kbn", "tuikavar")) :
>'names' 属性 [2] はベクトル [1] の長さと同じでなければなりません

ドキュメントを読みつくしたつもりなのですが、バグとしか思えません。
詳しい方、このバグは既知のものなのでしょうか?それとも回避方法があるのでしょうか?

799 :132人目の素数さん:2013/04/02(火) 09:47:57.43
>>798
その作者のTorgoさんに聞く方がここで聞くよりも早いと思うぞ

800 :◆yEy4lYsULH68 :2013/04/02(火) 16:08:36.00


> 1 :西独逸φ ★:2007/08/05(日) 05:47:55 ID:???0
>徳島県警阿南署などは5日未明、東京都足立区千住寿町、
>筑波大学准教授、増田哲也容疑者(50)を
>県迷惑行為防止条例違反(痴漢行為)容疑で逮捕した。
>
>調べでは、増田容疑者は、4日午後4時20分ごろから約50分にわたり、
>JR牟岐線の列車内で、県内の
>専門学校生の女性(21)の胸や太ももなどを触った疑い。調べに対し、
>「夏休み期間に、講演活動を兼ね
>て旅行していた。好みの女性だったのでムラムラした」と話しているという。
>

801 :132人目の素数さん:2013/04/03(水) 23:34:54.43
R 3.0.0 キタ━━━━(゚∀゚)━━━━!!

802 :132人目の素数さん:2013/04/04(木) 12:51:51.74
3.0.0に上げたら、保存されたワークスペースに非互換部分が含まれていたみたいで、
R (正確にはR.app GUI)が起動しなくなったw
コンソールの方は使えたので、すぐに対処できたけど、R初心者は要注意だな。

バージョン上げたら、ライブラリのコンパイルをやり直さなくてはいけないので面倒だよな。
configureにオプションを渡さないといけないのもあるし。

> nrow(library()$results)
[1] 267

みんなは、いくつぐらいなの?

803 :132人目の素数さん:2013/04/04(木) 13:07:53.30
rstudioの対応待ち

804 :132人目の素数さん:2013/04/04(木) 13:11:23.49
メインPCのlibraryは262
3.1とか3.0.2が出るまでとりあえず様子見だな

805 :132人目の素数さん:2013/04/04(木) 22:31:14.28
> nrow(library()$results)
[1] 2961

Rcmdrのせいなのか随分と多い。
自分の環境はR version 2.13.0 (2011-04-13)

806 :132人目の素数さん:2013/04/05(金) 01:02:41.34
背景色とフォントカラーを変えたいんだけど、etc\Rconsoleを設定しても全然反映されない
font = TT MS Gothic
points = 20
background = black
normaltext = white
usertext = LightGreen
highlight = Red
style = normal # Style can be normal, bold, italic
何が悪いんだろう

807 :132人目の素数さん:2013/04/05(金) 07:49:15.90
回答になっていなくて申し訳ないのだが、R以外のエディタを使うのが良いかと
デフォルトエディタらしいといえばそうなのだが、Rエディタはあまりに低機能過ぎる

モニタが大きい人ならRstudio、ノーパソ派ならNotepad++ & NppToR、あたりが個人的おすすめ

808 :132人目の素数さん:2013/04/05(金) 09:33:00.80
>>806
は?ターミナルエミュレータの設定にRは関係ないだろ、と思ったら、
> font = TT MS Gothic
Windowsな方でしたか。
私も回答になっていなくて申し訳ないけど、
背景やフォントカラー、構文色強調を自由に設定できるEmacs+ESSがお薦め。
Emacsは初期学習コストがかかるが、超絶便利。
初めてESSを使ったときは、あまりの便利さに気を失いそうになった。

809 :132人目の素数さん:2013/04/05(金) 15:31:00.18
>>803
3.0.0で使えているみたいだけど。
RStudio Ver.0.97.336

810 :132人目の素数さん:2013/04/06(土) 08:59:21.34
RStudioで普通に問題なく使えてる。一応2.15.3も残してはあるが3.0.0
インスコした後まだ立ち上げる機会がない。

811 :132人目の素数さん:2013/04/06(土) 13:04:58.94
なんか、ノートン先生に怒られた…(;・∀・)


絶対パス: c:\program files\r\r-3.0.0\bin\i386\r.dll
____________________________
____________________________
コンピュータの評価日 2013/04/05 12:12:11
前回の使用 利用不能
起動項目 いいえ
起動済み はい
____________________________
____________________________
少数のユーザー
Norton コミュニティの 50 人未満のユーザーがこのファイルを使いました。
____________________________
ごく新しい
このファイルの更新日はここ 1 週間以内です。
____________________________

これは危険度が高いファイルです。
____________________________
脅威の詳細
SONAR 保護はコンピュータ上で疑わしいプログラムの活動を監視します。
____________________________


元ファイル:
r.dll

812 :132人目の素数さん:2013/04/07(日) 12:09:36.61
怪しいサイトから拾い食いしただろ

813 :132人目の素数さん:2013/04/07(日) 17:13:19.15
よほどヘビーにR使う人でなければ、Emacs系はコスト>利益
「 (略) 作業効率が上がる(ように錯覚でき)ます. (RjpWikiより)」

814 :132人目の素数さん:2013/04/08(月) 11:00:43.17
>>813
逆。試しに使ってみるとか、RCommanderしか使わないとか、
年に数回だけ使うとかそんなレベルなら、
コンソール/RCommanderでもよいが、
ある程度使うなら、試行錯誤するためにも、エディタは必須。
常用しているテキストエディがなければ、微妙だけど。

815 :132人目の素数さん:2013/04/08(月) 12:42:11.56
3.0.0は「だいぶ2系が落ちついたから番号あげてみた」程度だって公式では言ってたけど、非互換なところたくさんあるの?

816 :132人目の素数さん:2013/04/09(火) 19:51:21.47
>>815
過去にsave.image()しまくった資産があるのでなければ、
基本的に非互換なんて気にしなくてもよいと思うよ。

でも、Ubuntuのリポジトリは2.15.3のままだな。
単に遅れているだけか、何か理由があるのかな。
Debianの方は3.0.0が来た。

817 :132人目の素数さん:2013/04/10(水) 01:47:48.52
ベン図を描きたいのだけど、お勧めある?
因みに2.15だとgplotsが無いみたいでvenn()は使えないみたいでした。

818 :132人目の素数さん:2013/04/10(水) 08:58:38.30
>>817
> RSiteSearch("Venn")
でヒットした関数やパッケージは試した上での質問かどうかで回答は変わるけど、
VennDiagramパッケージのような専用パッケージはどう?

819 :132人目の素数さん:2013/04/10(水) 10:52:02.97
ttp://www.biomedcentral.com/1471-2105/12/35
>>817-818同じくVennDiagramに一票

820 :132人目の素数さん:2013/04/12(金) 10:13:54.71
ちょっと教えてくれろ。

x <- rnorm(100);hist(x, prob=T, ann=F) ;par(new=T) ;plot(density(x),col="red")
こんな感じの正規分布っぽいグラフでXの範囲指定して、
Y軸0から確率密度の赤線までの面積を表したいんだけど、
ここを色づけする方法が判らない、
例えばXが1~2の間を塗るとき具体的にどんなコードになるか教えて下さい。

821 :132人目の素数さん:2013/04/12(金) 15:37:00.07
ペイント使って塗ったらいいじゃん

822 :132人目の素数さん:2013/04/13(土) 00:06:14.95
>>820

dat <- with(density(rnorm(100)),data.frame(x,y))

library(ggplot2)

ggplot(data = dat, mapping = aes(x = x, y = y)) +
geom_line() +
layer(data = dat, mapping = aes(x=ifelse(x >1 & x < 2 ,x,0), y=y), geom = "area", geom_params=list(fill="red",alpha=0.5)) +
scale_y_continuous(limits = c(0,max(dat$y)))

823 :132人目の素数さん:2013/04/13(土) 10:48:56.27
>>822
ありがとう

824 :132人目の素数さん:2013/04/13(土) 23:48:23.04
ここがRの本スレか。
R自体統計プログラムなのかグラフィックソフトウェアなのかよくわからんけど本スレは数学板なのね。
数学嫌いだわ…。Rまで嫌いになりそう

825 :132人目の素数さん:2013/04/13(土) 23:52:28.69
むしろ数学界隈以外での R の用途が気になるな。なんでもできるっちゃそうなんだけど。

826 :132人目の素数さん:2013/04/14(日) 00:04:02.13
>>825
学生時代数学にはつらい思いでがあって…

数学的能力が全くダメでもいろんな運の巡り合わせでRと向き合わなきゃいけなくなる人もいますんでご容赦を

827 :132人目の素数さん:2013/04/14(日) 05:11:16.14
統計学もグラフィックスも数学じゃないよ。数学者はそんなもの相手にせんわ

828 :132人目の素数さん:2013/04/14(日) 07:37:32.81
カール・フリードリヒ・ガウス...

829 :あぼーん:あぼーん
あぼーん

830 :132人目の素数さん:2013/04/15(月) 07:52:40.36
あるデータをplot(density(data))でグラフ化してます。
任意のX区間を指定して面積を求めようとしてるのですが、やり方を教えて下さい。

また、正規分布だと、dnorm(c(0,0.2,0.4,0.6,0.8,1))とやればX値に対応したY値がでるみたいですが、
任意のデータをプロットしている場合、X値からY値を取り出すにはどうやればいいのでしょうか?

831 :132人目の素数さん:2013/04/15(月) 08:54:48.29
規制されて書き込めなかった。
普通はpolygon()を使う

>>820
> x <- rnorm(100);hist(x, prob=T, ann=F)
> a <- density(x)
> polygon(a$x,a$y, col="red")

832 :132人目の素数さん:2013/04/15(月) 09:12:17.89
>>830
こちらも、>>831と同じ要領。
> data <- runif(100)
> plot(density(data))

> a <- density(data)
として、念のために幅を確認して、
> head(diff(a$x))
[1] 0.003151153 0.003151153 0.003151153 0.003151153 0.003151153 0.003151153
横が0.003151153と分かったので、矩形の面積を計算して合計。
> sum(diff(a$x)[1] * a$y )
[1] 1.000883

833 :132人目の素数さん:2013/04/15(月) 09:21:38.51
>>825
統計的裏付けのない実感で申し訳ないが、
確かに、10年くらい前は数学・数理統計の関係者がほとんどを占めていたと思う。
しかし、ここ5年ほどで急速に、Rをプログラミング言語としてとらえるIT関係のユーザが増えたし、
心理学研究や医学研究にも地道に普及している。
Rユーザ会の出席者を見渡しても、数学関係者はマイノリティになりつつあると思う。

834 :132人目の素数さん:2013/04/15(月) 12:01:36.43
こんな記事もある

「次に来る」プログラミング言語を占ってみる
ttp://www.atmarkit.co.jp/ait/spv/1201/17/news133_2.html

今後の動向を予感させるもう1つの動きは、プログラミング言語「R」が2012年1月のTIOBE PCIの19位に入ったことだ。
(中略)Rが話題になり始めた背景には、最近注目を浴びているある種のコンピュータ技術がある。
大量のデータを効率良く処理する技術だ。「ビッグデータ」という言葉を耳にした方は多いと思う。(中略)
RはGoogleが社内のデータ解析に活用しているなど、ビッグデータを扱う企業において重要なプログラミング言語となっており、今後広い範囲で話題になる可能性がある。

835 :132人目の素数さん:2013/04/15(月) 21:12:53.25
後藤大地ってどんなやつかと思ったら小物もいいとこじゃん。聞く耳もつに
値しないね。

836 :132人目の素数さん:2013/04/15(月) 23:59:44.25
ちゃんと取材にいってる人だと思うが、どちらかというとPCハードの記者さんだよね。

事実として、企業のコミットが増えてlinuxみたいにRもコミッター増えてんじゃないの?

837 :132人目の素数さん:2013/04/22(月) 15:49:58.99
ver3 変更点なにー?

838 :132人目の素数さん:2013/04/22(月) 16:09:28.75
>>837
ttps://stat.ethz.ch/pipermail/r-announce/2013/000561.html

839 :132人目の素数さん:2013/04/22(月) 21:01:07.44
>>825
競馬とオートレースに使ってる。
仕事では使わないなぁ。部下は使ってるみたいでレポート見るだけだね。

840 :132人目の素数さん:2013/04/22(月) 22:56:40.88
>>839
もうかりまっか?

841 :132人目の素数さん:2013/04/22(月) 23:24:49.44
>>840
オートレースは確実に儲かるよ。ルールやら競技特性やら勉強してパラメータ決めるまで大変だったけど。
競馬はまだキツい。

842 :132人目の素数さん:2013/04/22(月) 23:26:28.83
数値で決まるってことは性能の差に技量は勝てないのね

843 :132人目の素数さん:2013/04/22(月) 23:26:32.86
なんか捕まってたよねw

>競馬で30億円配当に巨額の追徴課税の件

844 :132人目の素数さん:2013/04/22(月) 23:34:16.04
>>842
技能を分解して数値化してます。

>>843
派手にやらなきゃ大丈夫。あれがバレたきっかけは株らしいし。

845 :132人目の素数さん:2013/04/22(月) 23:37:27.43
ぐぐったら株や投資信託からばれたって書いてあった 知らんかったわ
あと技能を分解ってすげーな 何を基準に分けてんのか興味あるw

846 :132人目の素数さん:2013/04/22(月) 23:43:03.50
>>845
あまり掘り下げるとスレ違いになるのですいません。統計の理屈はギャンブル特性の解析よりある意味簡単ですね。
計算の最後にはsvm使ってますよ。

847 :132人目の素数さん:2013/04/23(火) 10:17:29.62
競馬にはやはりmatlabでしょう。

848 :132人目の素数さん:2013/04/25(木) 17:18:24.32
このスレの住人はmatlabを買えない貧乏人ばかりだからそんなことを書き込むと
いぢめられるよ?

849 :132人目の素数さん:2013/04/25(木) 17:33:46.30
matlabの学生版は99ドルで破格

850 :132人目の素数さん:2013/04/25(木) 19:41:57.32
>>848
自腹で買う奴いるのか?
会社や学校とか所属組織のカネで買うもんじゃないの?

851 :132人目の素数さん:2013/04/25(木) 22:30:18.53
matlabってどんな感じ?
処理速度が若干速くて、PC(or 統計)オンチでもある程度使えて、
本体と拡張パックで2度金が取られる、程度のイメージしかなかったんだけど、
話聞いてるとやっぱどっか利点があるのかな、使ったことないので興味がある

852 :132人目の素数さん:2013/04/26(金) 00:12:24.56
matlabの互換はRじゃなくて、Octaveでそ?

853 :132人目の素数さん:2013/04/26(金) 07:23:50.93
互換かどうかの話じゃないんだぜ、KY

854 :132人目の素数さん:2013/04/26(金) 09:27:01.34
ていうか、Poor man's 統計ソフトのスレなのに、何でmatlabの話をするの?
舐めているの?

855 :132人目の素数さん:2013/04/26(金) 11:51:35.60
データ解析ツールoctaveを語ろう Part 2
http://toro.2ch.net/test/read.cgi/unix/1256735581/

Octaveやmaximaなどの数学系のフリーソフトのスレ
http://uni.2ch.net/test/read.cgi/math/1325930016/

856 :132人目の素数さん:2013/04/26(金) 12:21:57.36
R使いの貧乏人を尻目にmatlab使うのも乙なもんですわ、かっかっかっ

857 :132人目の素数さん:2013/04/26(金) 18:16:36.83
MATLABプログラミング 質問箱 その4
http://toro.2ch.net/test/read.cgi/tech/1346661308/

貴族向け
庶民向け

【R言語】統計解析フリーソフトR 第4章【GNU R】
http://uni.2ch.net/test/read.cgi/math/1294561909/

858 :132人目の素数さん:2013/04/27(土) 00:23:24.62
>>856-857
で、お前資産幾らある?
あまり笑わせるなよ。

俺はRしか使わない。

859 :858:2013/04/27(土) 00:26:39.70
億単位で答えてくれ。
別に証明はしなくていい。もし、俺の資産規模を知りたければお前の証明からだぜ。

それが嫌ならうせろ。目障りだ。分かったな小坊主。

860 :132人目の素数さん:2013/04/27(土) 00:59:33.07
持ち家(と言ってもマンションだが)くらいしか資産はないので0.5億くらいかな。
ココ数年でだいぶ目減りしたよ。

861 :858:2013/04/27(土) 01:07:24.23
>>860
そうか、年齢にもよるけど結構あるね。俺は流動資産だけで3億ぐらい。
レバレッジをかけているから、売買はかなりの規模になるけどヘッジもかけているから3億を割ることはない。

matlabもいいとは思うけど、Rで何年もかけて作ってきた予測の数々を移植する気になれない。
matlabのいいところがあるなら紹介して下さいな。

862 :132人目の素数さん:2013/04/27(土) 08:59:54.34
成金を競うスレはここでつか?

863 :132人目の素数さん:2013/04/27(土) 12:06:36.05
売買とかヘッジとか文系は下品だねェ

matlabはものつくりの理系が使う道具だから虚業の輩は使っちゃいけない。

864 :132人目の素数さん:2013/05/04(土) 19:56:10.82
私は、R言語でヤフーファイナンスの株価ヒストリカルデータをダウンロード可能な
「RFinanceYJ」パッケージとテクニカル指標が計算可能な「TTR」パッケージを利用して
下記のことをしたいと考えております。

下記から東証一部上場銘柄コード一覧をダウンロード・加工し、1712行の銘柄コードのみの
CSVファイルとしてまとめておきます。
http://www.tse.or.jp/market/data/listed_companies/b7gje60000023aiz-att/first-d-j.xls

その上で、1983年から毎日の日付を行、全銘柄の25日移動平均乖離率を列としてデータフレームを作成し、
1つのCSVファイルとして出力したいのですが、うまいコードが考えつきません。
(つまり、数千日の行と、日付+各銘柄の乖離率の1713列のデータフレームです。)

library(RFinanceYJ)
library(TTR)
f <- read.csv("銘柄コード.csv")  #銘柄コード読み込み
for(i in 1:1712){         #全部で1712銘柄
try(hiashi <- quoteStockTsData(f[i,],since='1983-01-01')) #株価4本値日足読み込み(tryでエラーが出ても無視)
SMA25 <- SMA(hiashi[,7], 25)  #日足調整済み終値から25日移動平均計算
DMA25 <- (hiashi[,7]-SMA25)/SMA25  #25日移動平均かい離率計算
data <- data.frame(hiashi[,1],DMA25)  #データフレーム作成
?????
   }
write.csv(merge, "merge.csv",row.names=FALSE) #CSVファイル出力

???の部分にうまくコードを入れて列の部分に各銘柄の移動平均かい離率を継ぎ足していきたいのですが、
R言語に精通しているどなた様か良いお知恵を拝借できませんでしょうか(merge関数を利用すればうまくいきそうなのですが、
うまくいきませんでした)。何卒よろしくお願い申し上げます。

865 :132人目の素数さん:2013/05/04(土) 20:12:22.18
What nationality are you?

866 :132人目の素数さん:2013/05/06(月) 17:28:03.08
How much do you pay?

867 :あぼーん:あぼーん
あぼーん

868 :132人目の素数さん:2013/05/07(火) 22:42:28.90
ところでこいつはなんなんだ

869 :132人目の素数さん:2013/05/07(火) 22:47:58.39
度々見かけるがどこの誰なのかわからない

870 :132人目の素数さん:2013/05/08(水) 18:34:53.80
> install.packages("tikzDevice")
Installing package into ‘/usr/local/lib/R/site-library’
(as ‘lib’ is unspecified)
警告メッセージ:
package ‘tikzDevice’ is not available (for R version 3.0.0)

マジですか?

871 :132人目の素数さん:2013/05/09(木) 09:59:33.72
市販の統計ソフトよりこっちのほうが優れてるの?

872 :132人目の素数さん:2013/05/09(木) 19:08:39.82
貧乏人なので知りません。すみません。

873 :あぼーん:あぼーん
あぼーん

874 :132人目の素数さん:2013/05/10(金) 08:54:36.63
数学のアナルが好きなのか

875 :132人目の素数さん:2013/05/11(土) 15:46:14.91
emacs+ESSで使ってる人、
Rguiだとescで計算中のR止めたり出来るけど、ESSだとどうすればいいのか教えてくれ。
installの時にサーバ訊かれてるみたいで、止まってしまう時とかも。

876 :132人目の素数さん:2013/05/16(木) 18:58:03.36
>>875
誰かコメントしてやれよ

you could try to jump to the end of the R buffer with C-c C-e
(comint-show-maximum-output), and then cancel C-c C-c. (At least this
works for me.)

for what it's worth, in case you are using tramp to run R remotely,
you could try C-q C-c which sends a literal C-c. that happens to work
for my setup.

> installの時にサーバ訊かれてるみたいで、止まってしまう時とかも
?setRepositories
"menu.graphics"を切っておけばOK

877 :あぼーん:あぼーん
あぼーん

878 :132人目の素数さん:2013/05/18(土) 01:02:02.42
http://www.r-project.org/

R version 3.0.1 (Good Sport) has been released on 2013-05-16.

879 :あぼーん:あぼーん
あぼーん

880 :132人目の素数さん:2013/05/19(日) 11:10:29.49
てst

881 :132人目の素数さん:2013/05/20(月) 11:03:00.23
rownames(データ)で定義されてる列名は取り出せるけど、
ある列名があるかないかは、どう確認すればいいの?

ループで回す以外で何か用意されてない?

882 :132人目の素数さん:2013/05/20(月) 12:10:52.09
>>881
rownamesということは、列名(変数名)ではなくて、行名の話だよね?
それでも、意味が分からないが。
普通に「ある行名があるかないか」検索すれば良いだけでは?
> a <- data.frame(x=1:5,y=11:15,row.names=month.abb[1:5])
> a
x y
Jan 1 11
Feb 2 12
Mar 3 13
Apr 4 14
May 5 15
というデータフレームがあったとする。
> any(rownames(a) == "Apr")
[1] TRUE
Aprという行名はある。その行を取り出す場合は"["コマンドを使う。
> a[rownames(a) == "Apr", ]
x y
Apr 4 14

883 :132人目の素数さん:2013/05/22(水) 18:51:47.67
          __ノ)-'´ ̄ ̄`ー- 、_
        , '´  _. -‐'''"二ニニ=-`ヽ、
      /   /:::::; -‐''"        `ーノ
     /   /:::::/           \
     /    /::::::/          | | |  |
     |   |:::::/ /     |  | | | |  |
      |   |::/ / / |  | ||  | | ,ハ .| ,ハ|
      |   |/ / / /| ,ハノ| /|ノレ,ニ|ル' 
     |   |  | / / レ',二、レ′ ,ィイ|゙/   私は只の数ヲタなんかとは付き合わないわ。
.     |   \ ∠イ  ,イイ|    ,`-' |      頭が良くて数学が出来てかっこいい人。それが必要条件よ。
     |     l^,人|  ` `-'     ゝ  |        さらに Ann.of Math に論文書けば十分条件にもなるわよ。
      |      ` -'\       ー'  人          一番嫌いなのは論文数を増やすためにくだらない論文を書いて
    |        /(l     __/  ヽ、           良い論文の出版を遅らせるお馬鹿な人。
     |       (:::::`‐-、__  |::::`、     ヒニニヽ、         あなたの論文が Ann of Math に accept される確率は?
    |      / `‐-、::::::::::`‐-、::::\   /,ニニ、\            それとも最近は Inv. Math. の方が上かしら?
   |      |::::::::::::::::::|` -、:::::::,ヘ ̄|'、  ヒニ二、 \
.   |      /::::::::::::::::::|::::::::\/:::O`、::\   | '、   \
   |      /:::::::::::::::::::/:::::::::::::::::::::::::::::'、::::\ノ  ヽ、  |
  |      |:::::/:::::::::/:::::::::::::::::::::::::::::::::::'、',::::'、  /:\__/‐、
  |      |/:::::::::::/::::::::::::::::::::::::::::::::::O::| '、::| く::::::::::::: ̄|
   |     /_..-'´ ̄`ー-、:::::::::::::::::::::::::::::::::::|/:/`‐'::\;;;;;;;_|
   |    |/::::::::::::::::::::::\:::::::::::::::::::::::::::::|::/::::|::::/:::::::::::/
    |   /:::::::::::::::::::::::::::::::::|:::::::::::::::::::::O::|::|::::::|:::::::::::::::/

884 :132人目の素数さん:2013/05/28(火) 00:09:57.13
Rのヘルプファイルをkindleで読めるようにしたいのだけど、いい方法ある?

885 :132人目の素数さん:2013/05/28(火) 00:10:44.48
Rのヘルプファイルをkindleで読みたいのだけど、いい方法ある?

886 :132人目の素数さん:2013/05/28(火) 09:19:18.47
>>884
TeXは入っている?
ヘルプやVignettesはPDFに変換できるし、PDFはKindleで読める。

887 :132人目の素数さん:2013/05/29(水) 07:40:17.17
Rstudioが神過ぎて泣いた
さくらのVPSに入れてあちこちで使ってる

888 :132人目の素数さん:2013/05/29(水) 17:16:07.70
>>887
サーバはバグあるから気をつけてね

889 :132人目の素数さん:2013/06/10(月) 23:56:42.03
質問です。
要素が全て同じ形の5行4列のデータフレームであるリストが存在します。
要素は100個ほどあるのですが、このリストの各データフレームから同じ行のデータを抜き出して、
それらをまとめてリストとして展開したいと思います。

仮にリストの要素が100個だとすると、5行4列のデータフレームですので、
上記の操作をすると、5個の100行4列のデータフレームを要素とするリストを得たいのです。

何か簡単な方法がありますでしょうか?
よろしくお願いいたします。

890 :132人目の素数さん:2013/06/11(火) 08:28:32.81
>>889
簡単も何も、Rの入門書に書いてあるような、リストの基本操作だと思うが。
リストの抽出は
?'[['
を参照。リストを対象とした一括処理は、
?lapply
を参照。

891 :132人目の素数さん:2013/06/11(火) 23:38:21.11
>>890
ヘルプを読んだのですが、
例えば、各要素のデータフレームの第2行だけを抽出するような方法がわかりません。
ご教示願えますか?

892 :132人目の素数さん:2013/06/12(水) 00:36:19.88
>>891
lapply(alst,"[",2,)

893 :132人目の素数さん:2013/06/16(日) 16:51:17.29
>>892
返事が遅くなりましたが無事できました。
ありがとうございました。

894 :132人目の素数さん:2013/06/22(土) 19:04:04.49
すみませんかなり初心者です(>_<)
Mac(OS X Mountain Lion)でつかっています
RのバージョンはR 3.0.0 GUI 1.60というやつです

たとえば散布図とかグラフを書いたときに、出力される画像内の日本語部分が、□□□と表示されてしまってうまくいきません
たとえばこういう感じです・・・
http://i.imgur.com/U3TQ2VK.png

↓の、奥村晴彦氏のHPで参考に紹介されている内容を、そのまま「.Rprofile」にコピペして作業ディレクトリには入れてあります。
http://oku.edu.mie-u.ac.jp/~okumura/stat/Rprofile.html

どうすればいいでしょうか…m(_ _)m

895 :132人目の素数さん:2013/06/23(日) 02:34:40.66
とりあえずさ、適当なfamilyを指定したらどう?
plot(1,1,xlab="日本語",family="Osaka")
とか。
/System/Library/Fonts/の中には、
Hiragino Kaku Gothic ProN W3.otfはないでしょ。
Rprofileで存在しないフォントを指定したら豆腐になるでしょ。

896 :894:2013/06/24(月) 22:02:46.72
>>895
できました!!
ありがとうございます!!!

897 :132人目の素数さん:2013/06/25(火) 10:01:46.70
>>896
解決しようで何より。
あとは、
?grDevices::quartzFonts
を読んで幸せになってください。

898 :132人目の素数さん:2013/06/29(土) 14:52:16.10
MacPortsからRを入れようとも目論んだのだけど、

R @3.0.1 (math, science)
R is GNU S - an interpreted language for statistical computing
R-framework @3.0.0 (math, science)
R is GNU S - an interpreted language for statistical computing

普通の奴とFrameworkの2種類が用意されているみたい。
Frameworkのメリットは何でしょうか?

因みに、CRANにあるMacOSXバイナリは、
OSのバージョンが古くてインストール不可でした。
$ sw_vers
ProductName: Mac OS X
ProductVersion: 10.5.8
BuildVersion: 9L31a

899 :894:2013/06/30(日) 16:45:46.17
>>897
入力してみましたが、よく分かりませんでした……。
とりあえず、私の環境だと、
http://d.hatena.ne.jp/konisimple/20100528/1275043266
ここに書かれている.Rprofileをそのままコピペすると、グラフを書いたときに毎回きちんと日本語の文字が表示されるようになり、とても幸せになりました。
しかし、ここに書かれているソースの意味は分かっていません……。
ひとまず、ここに書かれているコードの意味を理解できるようになるためには、どういう文献で勉強すればいいでしょうか?(;´д`)

900 :132人目の素数さん:2013/07/01(月) NY:AN:NY.AN
>>899
語学と同じで、辞書を引きながら文章を読むように、
ヘルプを読みながらコードを読みます。

辞書→ヘルプ (例: ?grDevices::quartzFonts)
文章→コード

hookとかname spaceと聞いても、何の意義があるのかピンと来ないレベルなら、
コードを読み進めるためのITの基礎教養がまだないレベルだから、
そちらを優先させるべきかも知れません。
語学に多読が有効であるように、コードを多く読むことはあたなの実力向上に有効です。

901 :894:2013/07/01(月) NY:AN:NY.AN
>>900
がんばります(;´д`)

902 :894:2013/07/07(日) NY:AN:NY.AN
Rについてのブログがホットエントリになってますね
がんばろ〜
http://bugrammer.hateblo.jp/entry/2013/07/05/192101

903 :132人目の素数さん:2013/07/09(火) NY:AN:NY.AN
OSXのRStudioでバックスラッシュが入力できないのだけど、同じ症状の人いるかな?
環境は:OS10.8.4、ことえり、R version 3.0.1、RStudio 0.97.551

Option+¥でも、ことえりの設定を変更しても、¥しか入力できない。
ただし、かなモードだと半角の\が入力できる。

他のエディタとか、ターミナルでは英数字モードでOption+¥でバックスラッシュの入力が可能

904 :132人目の素数さん:2013/07/09(火) NY:AN:NY.AN
>>903
おぉ、本当や。
Emacsと同じ。Emacsの方は強制的にバックスラッシュに変換するように組み込んだが。

こちらはATOKだけど、ATOKからU.S. (星条旗)にすると、
\で円記号、Opt+\でbaskslashがRStudioで入ったよ。

905 :132人目の素数さん:2013/07/09(火) NY:AN:NY.AN
>>904
確認ありがとう。
Rguiだとどうなんだろう?
俺はソースからmakeして、ターミナルからRを使うようになっているから、わからんのだが。

906 :132人目の素数さん:2013/07/10(水) NY:AN:NY.AN
RguiもRstudioもバクスラは円マークが出る
自分には特に関係なかったので疑問を抱かず仕様としてた

907 :132人目の素数さん:2013/07/10(水) NY:AN:NY.AN
>>903-905
>>906
ごめ、寝ぼけてた、Rguiは普通にバクスラいけたわ@win版

908 :132人目の素数さん:2013/07/10(水) NY:AN:NY.AN
連投失礼、Rstudio@win版も行けた、フォントをCourier Newとかに設定すればバクスラがでる

円マークもバクスラも内部では同一処理なんじゃないかな…

909 :132人目の素数さん:2013/07/10(水) NY:AN:NY.AN
>>908
WindowsとMacOSXでは、円記号とバックスラッシュの取り扱いが異なるので、
Windowsのことは参考にならないよ。
フォントでどう表示するかではなくて、どの文字コードが入力されるのかが問題。
MacOSXでは、円記号(0xA5)とバックスラッシュ(0x5C)は別の文字になる。
Windowsでは、円記号もバックスラッシュも0x5Cで、どちらが表示されるかはフォントの設定による。

910 :132人目の素数さん:2013/07/13(土) NY:AN:NY.AN
randomforestで不均衡データをうまく扱う決定的な方法はないのかな?

911 :132人目の素数さん:2013/07/13(土) NY:AN:NY.AN
classwt

912 :132人目の素数さん:2013/07/13(土) NY:AN:NY.AN
>>911
どうもです。
それは使ってたんですがイマイチでした…

913 :132人目の素数さん:2013/07/19(金) NY:AN:NY.AN
http://www.scirp.org/journal/ojs/
この雑誌って怪しい雑誌だと思ってたのだけど
RjpWiki
のリファレンスに載ってた。本当は怪しくない雑誌だったの?

914 :132人目の素数さん:2013/07/19(金) NY:AN:NY.AN
>>913
our operation office is located in China.
いや、十分怪しい。

915 :132人目の素数さん:2013/07/19(金) NY:AN:NY.AN
http://www.scirp.org/Journal/Indexing.aspx?JournalID=590
掲載論文の引用数はほぼ0に近い
オープンアクセス&費用切り詰めるスタイルなので、査読なしで読者が評価してねという事後評価路線らしい

916 :132人目の素数さん:2013/07/19(金) NY:AN:NY.AN
全部掲載されるなら、中国で事務コストカットというのは分かるんだが、
いっぱいきた時は、どうしてるんだろうね?抽選?先着順?

917 :132人目の素数さん:2013/07/19(金) NY:AN:NY.AN
http://www.okada.jp.org/RWiki/?R%A4%F2%BB%C8%A4%C3%A4%BF%B3%D8%BD%D1%CF%C0%CA%B8

このリストの中に1つ入ってる
査読付きの論文の数を稼ぐのには使ってもいいのかな?

918 :群論U:2013/07/20(土) NY:AN:NY.AN
依然あった群論のまとめと続きを行う。
予定は以下の通り

1.ラグランジュ
2.ガロア
それ以下は未定

イメージをつかむ事を重点的にやる。

919 :132人目の素数さん:2013/07/21(日) NY:AN:NY.AN
平均値を逐次更新で求めてu[i]がどう変動していっているのか見たいです。
#54個のデータ(0〜100の点数)
x<-c(95,95,95,90,75,93,79,75,80,70,91,97,
   75,88,69,83,68,90,96,94,85,80,80,79,85,85,88,
   90,83,78,90,90,97,70,87,85,73,94,65,78,76,84,
   80,76,77,78,80,51,77,81,54,83,70,76)
n<-length(x)
#uは長さ54ですべて0のベクトル(すべて1にしてもできませんでした。)
u<-numeric(n)

u[1]<-x[1]
for(i in 1:n-1) {
#逐次更新式
u[i+1]<-(n/(n+1))*(u[i]+(1/n)*x[i+1])
}
上のコードで実行しているのですが、
Error in u[i + 1] <- (n/(n + 1)) * (u[i] + (1/n) * x[i + 1]) :
replacement has length zero
のようなエラーが出てしまいます、どのようにすれば修正できるでしょうか?
他の方法(u_h[i]=mean(head(x,n=i)))では求められましたが、上記のコードではどこがダメなのかわかりませんでした。

920 :132人目の素数さん:2013/07/21(日) NY:AN:NY.AN
for文使う必要あるの?
cumsum(x)/seq(1,length(x))とかじゃ駄目なの??

921 :919:2013/07/21(日) NY:AN:NY.AN
>>920
その方法でも求められますね。

ただ、今回はなぜ(>>919のコード)でエラーが出るのかわからなかったので質問しました。
時間をかけて解決できなかったのでどこが間違っていたのか知りたいだけです。

922 :132人目の素数さん:2013/07/21(日) NY:AN:NY.AN
>>921
演算子の優先順位
seq_len(n-1)

923 :132人目の素数さん:2013/07/21(日) NY:AN:NY.AN
>>919

1:n-1
=(1:n)-1
=0:n-1

924 :919:2013/07/22(月) NY:AN:NY.AN
>>922
>>923
演算子の優先順位とはそういうことでしたか
うまくいきました、本当にありがとうございました。

925 :132人目の素数さん:2013/07/22(月) NY:AN:NY.AN
誰か良い知恵をお貸し下さい。

遺伝的アルゴリズムを利用してラッパー法による
特徴選択をしたいと考えています。
例えば、5個の説明変数の組み合わせで2値の判別分析モデルを
構築するとして、下記のように2値の5個の遺伝子で染色体を表現します。

0 1 1 0 1

上記であれば、説明変数2、3、5の組み合わせでモデルを構築します。
分類の正答率やRMSEを評価関数として遺伝的アルゴリズムは
コーディングできそうなのですが、0と1で表現される列だけ
抜き出してデータフレーム(?)を作成して、説明変数全体の
サブセットを表現する方法が分かりません。

最初はsubset関数とcomb関数を使おうと思いましたが上手くいきませんでした。

どなた様かうまい解決方法をご存じないでしょうか?

926 :132人目の素数さん:2013/07/22(月) NY:AN:NY.AN
>>925
よくわからない(^_^;

2値型説明変数があってもそのまま使えばよいと思うのですが、
それらを抜き出す目的が分からない(ので、助言が難しい)。

> a <- data.frame(y = sample(c(TRUE, FALSE), 10, replace = TRUE), x1 = sample(c(TRUE, FALSE), 10, replace = TRUE), x2 = sample(c(TRUE, FALSE), 10, replace = TRUE))
> summary(glm(y ~ ., data = a, family = binomial()))

Call:
glm(formula = y ~ ., family = binomial(), data = a)

Deviance Residuals:
Min 1Q Median 3Q Max
-1.52358 -0.58372 -0.03405 0.51562 1.92551

Coefficients:
Estimate Std. Error z value Pr(>|z|)
(Intercept) 0.7848 1.3625 0.576 0.565
x1TRUE -2.4682 1.6362 -1.509 0.131
x2TRUE 1.1659 1.6953 0.688 0.492
[以下略]

という感じで2値データをそのまま説明変数にするのはだめなの?

927 :132人目の素数さん:2013/08/05(月) NY:AN:NY.AN
Rと直接関係ないのですが、表をcsvで出力した後に見た目を確認する際に
一々Excelを立ち上げるのも面倒ですがテキストエディタだと表形式で見れませんし、
何か簡易な方法はありませんでしょうか?
どなたかcsvエディタお使いの方いらっしゃいますか?

928 :132人目の素数さん:2013/08/06(火) NY:AN:NY.AN
>>927
csv-mode

ところでscやoleoってutf-8も対応してたっけ?

929 :132人目の素数さん:2013/08/07(水) NY:AN:NY.AN
>>927
MacOSXユーザなら、クイックルック機能(http://ja.wikipedia.org/wiki/Quick_Look)を使っていると思うけど、
CSV用のプラグインもあるみたいだよ。
ttps://code.google.com/p/quicklook-csv/

930 :132人目の素数さん:2013/08/07(水) NY:AN:NY.AN
R Commanderじゃダメ?

931 :132人目の素数さん:2013/08/07(水) NY:AN:NY.AN
こんなコマンドを作ってみた。
------ csv2view -------
#!/usr/bin/Rscript

head(read.csv(commandArgs(trailingOnly = TRUE)))
------ ここまで ------
$ head -n 3 /tmp/tmp.csv
市区町,昭和60年,平成2年,平成7年
神戸地域,1.59 ,1.38 ,1.25
  東灘区,1.58 ,1.33 ,1.31
こんなcsvがあったとして、csv2viewでこのcsvを表示する。
$ csv2view /tmp/tmp.csv
市区町 昭和60年 平成2年 平成7年
1 神戸地域 1.59 1.38 1.25
2   東灘区 1.58 1.33 1.31
3   灘区 1.41 1.15 1.13
4   兵庫区 1.39 1.17 1.17
5   長田区 1.36 1.29 1.25
6   須磨区 1.65 1.40 1.25
↑2chにペーストすると表示がずれるかも知れないけど、
こちらではきちんと表になっている。

932 :132人目の素数さん:2013/08/07(水) NY:AN:NY.AN
皆様ありがとうございます
今すぐには試せない状態ですので、後程試してみます

933 :132人目の素数さん:2013/08/11(日) NY:AN:NY.AN
RってRスクリプト開いての実行したい範囲指定してやってるんですけど。普通ですか?

934 :132人目の素数さん:2013/08/11(日) NY:AN:NY.AN
>>933
なんかの本に[Ctrl]A{Ctrl]Rというのが載っていたが、これはWindowsのRGuiかな。

935 :132人目の素数さん:2013/08/11(日) NY:AN:NY.AN
>>933
いちいち範囲指定するのが面倒なので、
こちらの意をくみ取って勝手に範囲指定して実行するような操作(C-c C-c)をしているけど。
どのエディタを使っているの?

936 :132人目の素数さん:2013/08/11(日) NY:AN:NY.AN
デフォのエディタだけど。

937 :132人目の素数さん:2013/08/11(日) NY:AN:NY.AN
>>936
デフォって何?

インストール直後から何にも触っていない状態で、
うちはviだけど、あんたもviなのか?
> options("editor")
$editor
[1] "vi"

938 :132人目の素数さん:2013/08/11(日) NY:AN:NY.AN
デフォといえばRってアイコンクリックしてでてくるやつだけど。

939 :132人目の素数さん:2013/08/11(日) NY:AN:NY.AN
>>938
「アイコン」という言葉が出てきたので、
R本体の話ではなくて、付属品のR.app GUIとかRGui.exeの話をしているんだね。
想像するに、それらのOS固有に開発されているGUI系ラッパーに独自のテキストエディタが付いているのかな。
違うのかな。

まぁ、そのどっちのOSを使っているか知らないけど、
「MacOSX限定の話なんだけど、」とか「Windows限定の話なんだけど」って、
>>933の頭につけておいてくれたら、>>933を読み飛ばせたんだけど、と言ってみる。

940 :132人目の素数さん:2013/08/11(日) NY:AN:NY.AN
なにもかいてなければwindows
これ常識だから。

941 :132人目の素数さん:2013/08/11(日) NY:AN:NY.AN
>>940
マルチプラットフォームに対応するUNIX由来のRに、
そんな常識が通用するのか。ばかばかしい。
これはWindowsに移植した弊害だな。

942 :132人目の素数さん:2013/08/11(日) NY:AN:NY.AN
Windowsに移植したからこそ広まったんだろ。
優秀な人材はwindowsを使っているから
開発測度が飛躍的にたかまってな。

943 :132人目の素数さん:2013/08/11(日) NY:AN:NY.AN
>>942
普及に関しては、首肯する。
でも、開発速度は違うよ。
Rの開発Coreチームの人間と会ったり話したりしたことがないの?
Prof. Brian RipleyはDebianとSolarisだよ。
彼らがMinGWをメインで使っているとでも言うの?

944 :132人目の素数さん:2013/08/11(日) NY:AN:NY.AN
マイクロソフトの社員とかいるだろ。

945 :132人目の素数さん:2013/08/11(日) NY:AN:NY.AN
>>943
>Rの開発Coreチームの人間と会ったり話したりしたことがないの?

貴殿はどこでそんな人と会うのか。

946 :132人目の素数さん:2013/08/12(月) NY:AN:NY.AN
>>945
絶対に会えるのはuseR!かな。
今年のuseR!はもう終わったけど、2014年はロサンゼルスだよ。
ttp://user2014.stat.ucla.edu/

947 :132人目の素数さん:2013/08/12(月) NY:AN:NY.AN
どこで会うのか聞いているのに
どこで会えるかを答えるアホ

948 :132人目の素数さん:2013/08/12(月) NY:AN:NY.AN
もしかして話しかけるという選択肢がない?
まあ、ソーシャルメディアでも同じだけど。

949 :132人目の素数さん:2013/08/13(火) NY:AN:NY.AN
いかにも親しげな書き方しといて実際は相手に認知されてないというオチ

950 :132人目の素数さん:2013/08/13(火) NY:AN:NY.AN
Rって一日目のデータフレームと2日目のデータフレームがあった場合
2つを1つにしないといけないんですか?

951 :132人目の素数さん:2013/08/13(火) NY:AN:NY.AN
例えば
一日目
a b
1 4
2 5
3 6
2日目
a b
1 7
2 8
というでーたふれーむがあったら
a b1 b2
1 4 7 
2 5 8
3 6 NA
見たいなのをつくって、b1-b2を計算するんですか?

952 :132人目の素数さん:2013/08/13(火) NY:AN:NY.AN
>>950
する必要ないです。そのまま使えばよいです。
「必要がない」というだけで、1つにしてもOKです。

表計算の感覚だと1つに統合する必要がありそうな気がしますが、
データの並びにだけ気をつければ、問題ありません。

953 :132人目の素数さん:2013/08/13(火) NY:AN:NY.AN
>>952
ありがとうございます。
でもデータの順番がバラバラで
入っているaもバラバラの場合は
1つにした方が簡単ですよね。

954 :132人目の素数さん:2013/08/13(火) NY:AN:NY.AN
>>953
Rでは、表形式にできないようなデータ構造を含む多種多様で複雑な構造が可能なので、
もう少し具体的なデータ構造についての説明がないと、
あなたの場合はどうなのか、何とも言えない。
ただ、1つにした方が簡単と感じるなら1つにすればどうだろう。

955 :132人目の素数さん:2013/08/13(火) NY:AN:NY.AN
でもRって1つにしてやる関数は揃っているけど
2つにしてやる関数は作らないといけないっぽくないですか?

956 :954:2013/08/13(火) NY:AN:NY.AN
>>950はもしかして>>951なのか?
それなら、データ構造は明らかで申し訳ない。
> (d1 <- data.frame(a = 1:3, b = 4:6))
a b
1 1 4
2 2 5
3 3 6
> (d2 <- data.frame(a = c(2,1,3), b = c(7:8, NA)))
a b
1 2 7
2 1 8
3 3 NA
だとすると、aごとにbの差分を計算するなら、
> d1$b - d2[order(d2$a), ]$b
[1] -4 -2 NA
とする。

957 :132人目の素数さん:2013/08/13(火) NY:AN:NY.AN
>>956
ありがとうございます。
そんな感じです。
ただ違うのはaに1 2 3が存在するとは限らないということです。
たとえば初めの日には1がいたけど次の日には2が居なかったりします。

958 :132人目の素数さん:2013/08/13(火) NY:AN:NY.AN
>>955
formulaを作成するときは、変数名と値をdataに入れると便利な場合はある(一括指定とか)。
でも、dataのしては必須ではない。
> lm(d1$b~d2$b)

Call:
lm(formula = d1$b ~ d2$b)

Coefficients:
(Intercept) d2$b
-3 1

これで、1日目のbと2日目のbの回帰モデルを検討できる。
別に1つにする必要はない。

959 :132人目の素数さん:2013/08/13(火) NY:AN:NY.AN
>>957
それなら、1つにした方が分かりやすいね。
> (d1 <- data.frame(a = sample(1:10, 5), b = 1:5))
a b
1 1 1
2 2 2
3 9 3
4 4 4
5 7 5
> (d2 <- data.frame(a = sample(1:10, 5), b = 5:1))
a b
1 3 5
2 4 4
3 1 3
4 8 2
5 2 1
> merge(d1, d2, by = "a", all = TRUE)
a b.x b.y
1 1 1 3
2 2 2 1
3 3 NA 5
4 4 4 4
5 7 5 NA
6 8 NA 2
7 9 3 NA

960 :132人目の素数さん:2013/08/18(日) NY:AN:NY.AN
>>940
その認識はスレによっては非常識でしかないから今すぐ治せ

961 :132人目の素数さん:2013/08/21(水) NY:AN:NY.AN
抽象的な質問で申し訳ないのだけど、
再帰関数を書きたいのだけど、
再帰処理の終了判定条件なしで、
単純に再帰の回数を指定して処理を終了させるにはどうすればよいのだろう。

x' = f(x) みたいな関数があって、
f(f(f(f(f(f(x))))))という風に有限回数で入れ子にしたい。

962 :132人目の素数さん:2013/08/22(木) NY:AN:NY.AN
>>960
「なにも書いてなければ(馬鹿な)windows(ユーザー)」というのはもやは常識だろ

963 :961:2013/08/22(木) NY:AN:NY.AN
自己解決。

f <- function(x){
return(x + 1)
}

f.main <- function(x, i = 3){
for (j in 1:i){
x <- f(x)
}
return(x)
}
とすれば、forループ終了後に最終的なxの値はそのまま残ってくれるみたいだ。

> f.main(1, i = 100)
[1] 101

Recall()とか考えて迷宮に入っていた。

964 :132人目の素数さん:2013/08/22(木) NY:AN:NY.AN
>>963
どうせならこうだな

f <- function(x) {x + 1}
g <- function(x) {x + 2}

f.main <- function(a, x, i){
for (j in 1:i){
x <- a(x)
}
return(x)
}

f.main(f, 1, 100)
f.main(g, 1, 100)

965 :132人目の素数さん:2013/08/23(金) NY:AN:NY.AN
データフレームX(m×n)とベクトルv(1×n)があった時に、vと一致するXの行を抽出したいのですが、シンプルな方法ありませんか?
applyとsetequalで出来るかと思ったのですがうまくいきませんでした
forループ2つで行と列を見ていけば出来ることは出来たのですが、どうも非効率的な気がします

966 :132人目の素数さん:2013/08/23(金) NY:AN:NY.AN
>>961

?Reduceより
Iterate <- function(f, n = 1) function(x) Reduce(function(g, ...) g(...), rep.int(list(f), n), x, right = TRUE)
h <- function(x) 1 + 1 / x
> Iterate(h, 40)(1) == (sqrt(5) + 1) / 2
[1] TRUE

関数言語っぽく
Compose <- function(f, g) function(x) f(g(x))
nest.fun <- function(f, n){
if (n == 0) function(x) identity(x)
else Compose(f, nest.fun(f, n - 1))
}
> nest.fun(h, 40)(1) == (sqrt(5) + 1) / 2
[1] TRUE

末尾再帰かつ高速化
nest.fun <- function(f, n, acc.fun = identity){
if (n == 0) return(acc.fun)
else if (n %% 2 == 0) nest.fun(Compose(f, f), n / 2, acc.fun)
else nest.fun(f, n - 1, Compose(f, acc.fun))
}

967 :132人目の素数さん:2013/08/23(金) NY:AN:NY.AN
>>964,966
ありがとうございます。大変参考になりました。

>>966の9行目、
function(x) retrun(x) じゃなくて、function(x) identity(x)にするのは何か理由があるのでしょうか。
以前から、identity()の存在意義がよく分からないのです。

>>965
よく理解できていないけど、Xから抽出したものが、vと同一ならば、vそのものだよね?
だとすると、vのままでよいので、抽出する意味がない。
vと同一の行番号が知りたいとか、
vと同一の行がXに複数含まれていて、その全てを取り出したい、
または、vと一致する行がXに含まれているかどうかの有無をチェックしたいという意味でしょうか。

> X <- matrix(1:100, 10)
> v <- (1:10) * 10 - 4
としたとき、
> X[apply(X, 1, all.equal, v) == TRUE, ]
[1] 6 16 26 36 46 56 66 76 86 96
と抽出できるけど、これは
> v
[1] 6 16 26 36 46 56 66 76 86 96
と同一なわけで。

968 :132人目の素数さん:2013/08/23(金) NY:AN:NY.AN
ロジスティック回帰について教えてください。
下記データ( r t )があります。

r <- c( 0.727 , 0.634 , 0.500 , 0.443 , 0.416 , 0.328 , 0.272 , 0.225 , 0.133 )
t <- 1:9

このとき、以下のようにロジスティック回帰を行うと、
glm( r ~ x , family=binomial )
>In eval(expr, envir, enclos) : 二項 glm で整数でない成功数がありました!
とエラーになります。

ここで質問です。
1.小数データを目的変数に、ロジスティック回帰はできないのですか?
できるのであれば、どうすればよいのでしょうか?

2.ふと疑問に思ったのですが、目的変数が0、1って、そのままでは、ロジット変換できないと思うのですが、
内部的にどのように計算されているのでしょうか?(微小数を加減算している?0+0.0000001と1-0.0000001 )

969 :132人目の素数さん:2013/08/23(金) NY:AN:NY.AN
>>968
> エラーになります
エラーになりません。「警告」と「エラー」は違います。

> 小数データを目的変数に、ロジスティック回帰はできないのですか?
できますが、多分あなたが思っているものと違います。

glm()でロジスティック回帰をやるときには、
目的変数の設定仕方が3通りあります。
>>968を見ると、目的変数は、二値でも、説明変数カテゴリごとの計数(整数)でもないから、
説明変数カテゴリごとの割合(小数)だよね。
その場合は、分母に相当するweightsを指定しないと駄目だよ。

何を言っているのか、分からなければ、Rの解説書を読んだ方がよいよ。
Rで学ぶデータサイエンスシリーズ「一般線形モデル」なら、pp.53-56のあたり。

2. の質問は、目的変数をロジット変換するという思いこみによる誤解。
実測値(0,1)とモデル値exp(beta_1x_1+beta_0)/(1-exp(beta_1x_1+beta_0))を比較して、
当てはまりを見る話じゃないの?

970 :132人目の素数さん:2013/08/23(金) NY:AN:NY.AN
>>954
レスありがとうございます。

確かに「警告」であって「エラー」ではないですね。
私が提示した例は、説明変数カテゴリごとの割合(小数)です。
その上で、明示的に分母に相当するweightsを指定しなくても
同じウエイトが設定されるのでは?と思いました。如何でしょう?
そうだとしたら、「警告」を出力しなくても良いのではと思いました。

2.
> 実測値(0,1)とモデル値exp(beta_1x_1+beta_0)/(1-exp(beta_1x_1+beta_0))を比較

なるほど。すっきりしました!
実測値(0,1)とモデル値が、完全に一致しない(限りなく近くはなるが・・・)ところに
私は何か引っかかっていたようです。

971 :966:2013/08/23(金) NY:AN:NY.AN
>>967
>function(x) retrun(x) じゃなくて、function(x) identity(x)にするのは何か理由があるのでしょうか。
朝だったので単なる勘違いでした。
-if (n == 0) function(x) identity(x)
+if (n == 0) identify

個人的には恒等写像って意味を明確にしたいからidentityを使う感じでしょうか。
むろんfunction(x) x でも機能は同等ですが。

972 :965:2013/08/24(土) NY:AN:NY.AN
すいません自己解決しました
言葉足らずで申し訳ありませんでしたが、最終的にやりたかったことは変数の組合せ別の集計でした
適当で申し訳ありませんが結局こうなりました

X <- as.data.frame(matrix(1:100, 10))
X <- rbind(X, X, X[1:5,], X[1:4,])
Y <- data.frame(unique(X), freq=NA)

for (i in 1:nrow(Y)) {
Y$freq[i] <- nrow(X[which(apply(X, 1, identical, as.matrix(Y)[i,1:(ncol(Y)-1)])),])
}

973 :132人目の素数さん:2013/08/24(土) NY:AN:NY.AN
>>972
こんなんもあるよ。変数も指定できるみたい
library(plyr)
count(X)
count(X, c("V1", "V2"))

974 :132人目の素数さん:2013/08/24(土) NY:AN:NY.AN
>>973
知りませんでした。そのまんま私のやりたいことができてびっくりです
ありがとうございます

975 :132人目の素数さん:2013/08/26(月) NY:AN:NY.AN
>>968-970
ちょっとピントがずれている気がする…

元データ解らないからなんとも言えないんだが、
>>969氏の回答がより正しいだろうことを前提に、あえて>>968氏の欲しい答えを返すと

glm( r ~ t , family = "gaussian"( link = "logit" ) )

となる (これは誤差構造に正規分布を仮定して、ロジスティック式のパラメータを推定している)
ちなみに>>969氏の方法だと誤差構造に二項分布を仮定して(以下同文)となる (おそらくこっちの方がより正しい)

976 :132人目の素数さん:2013/08/30(金) NY:AN:NY.AN
裏Rjpwiki読んでてもしかして中の人ってG大のA先生なのではなどと思った

977 :132人目の素数さん:2013/08/30(金) NY:AN:NY.AN
>>976
うーん、口調が違う気がするけど。
それより、河童さんが誰か気になる。

978 :132人目の素数さん:2013/09/07(土) 12:43:56.32
>>977
最近、河童さんと俺しかQ&A初心者コースに回答していない。
過疎化が進んでいるのかな。

979 :132人目の素数さん:2013/09/09(月) 00:44:44.31
>>841
kwsk

980 :132人目の素数さん:2013/09/23(月) 09:35:45.96
Rのホームディレクトリの場所は変更はできないんでしょうか?
作業ディレクトリではなく、ホームディレクトリです。

981 :980:2013/09/23(月) 09:54:08.60
すいませんなんか勘違いしてました
ホームディレクトリというのはたんにRのアプリが入ってる場所のことなのかな

982 :132人目の素数さん:2013/09/23(月) 17:01:03.55
>>980
> Rのホームディレクトリの場所は変更はできないんでしょうか?
もちろん、出来ます。
でも、突拍子もないところにインストールすると、
見つけてもらえない場合があるので、
標準的な場所以外は、念のために環境変数R_HOMEを設定しておく方が良いでしょう。
ただし、設定したことを忘れると、トラブルシューティングではまることがあるので注意。

983 :980:2013/09/23(月) 21:47:00.43
>>982
ありがとうございます
初心者……というかパソコン自体もあまり詳しくないのですが(Macをつかってます)、ホームディレクトリっていうのは、単にRをインストールした場所という意味なんでしょうか?
作業ディレクトリには、.RDataとか.Rhistoryとか.Rprofileとかが入っているのですが、ホームディレクトリというのはそういう、設定ファイル的なものを置く場所ではないのでしょうか。
なんか、置き場のようなものとしてホームディレクトリってのがあるんであれば、作業ディレクトリの近くに置いといたほうがいいのかな…とか思ったのですが

984 :132人目の素数さん:2013/09/24(火) 00:07:26.50
>>983
コンピュータの世界では一般的に、
例えば、○○というソフトウェアがあったとして、
○○のホームディレクトリというのは、
○○をインストールしたディレクトリと実用上は同等です。
これはRに限った話ではなくて、一般的な話です。

> 作業ディレクトリには、.RDataとか.Rhistoryとか.Rprofileとかが入っている
それらは、システム全体に有効にさせる場合を除いて、
ユーザのホームディレクトリ(つまりMacOSXの場合、/Users/ユーザ名)に置くファイルです。
作業ディレクトリに置いた場合にどうなるか実験したことはありませんが。

985 :984:2013/09/24(火) 00:11:07.87
すみません。うっかり一部嘘を書きました。
訂正します。
Rを終了するときに、作業内容と履歴を保存すれば、
.Rdataと.Rhistoryはそれぞれの作業ディレクトリに残ります。

986 :980:2013/09/24(火) 08:03:34.73
>>985
おっと、わたし、.Rprofileも作業ディレクトリにおいてました…たしかにいま解説サイトをいくつか見るとホームディレクトリだよ〜んと書いてありました
最初、グラフの日本語化のために解説サイトに公開されてる.Rprofileの例をいくつか試してダメだったんですが、作業ディレクトリに置いてたからかな…
でも今は日本語化に成功してるので、後で自分の環境がどうなってるか確認してみます
ありがとうございます

987 :132人目の素数さん:2013/09/24(火) 09:07:46.53
>>986
> たしかにいま解説サイトをいくつか見ると
正しいかどうか確証がないサイトの解説よりも、
helpを読もうよ。

help("Rprofile")

Rはどんどん進化しているので、Webサイトや書籍で解説しても、
すぐに内容が陳腐化します。
自分が使っているバージョンのRではどうなのか、
自分がインストールしているRに尋ねるのが最短だと思いますよ。

988 :980:2013/09/24(火) 12:40:21.75
>>987
なるほど…

989 :132人目の素数さん:2013/09/25(水) 12:34:56.57
0

428 KB
■ このスレッドは過去ログ倉庫に格納されています

★スマホ版★ 掲示板に戻る 全部 前100 次100 最新50

read.cgi ver 05.02.02 2014/06/23 Mango Mangüé ★
FOX ★ DSO(Dynamic Shared Object)