【R言語】統計解析フリーソフトR 第4章【GNU R】
schemeのambに相当することはできるのでしょうか
どうせjavaならKawaで書いてくれればいいのに
>>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 動的な多態性(ポリモーフィズム)
×Incaster ○Incanter
sage
誰かRでbmpをimagematrixオブジェクトとして読み込む方法知らないか?
11だけど、EBImage使うことにした。 他にいい方法知ってる人いたらおせえて
13 :
132人目の素数さん :2011/01/29(土) 03:04:25
read.matrixでひとつのファイルから複数の行列を読み込んだりすることは可能でしょうか? 初歩的な質問でしたらすいません、教えていただける方宜しくお願いします。
R初心者なのですが、小数の精度について解説されたサイト等ありませんでしょうか。
軸ラベルと凡例が日本語のグラフで、日本語のみに日本語フォントを使用してeps出力する方法をどなたかご存知ないでしょうか? pdfなら、日本語関連を最後にまとめて、直前にpar(family=Japan1など)でいけるのですが・・・
17 :
132人目の素数さん :2011/02/15(火) 22:46:52
質問です。 単回帰についてですが、データフレームの一列目に被説明変数が格納されており、 残りの列に説明変数が格納されています。 各説明変数を用いて単回帰を行いたいのですが、いちいち変数を指定するのが面倒です。 apply関数を利用しようと思ったのですがうまくいきません。 何か良い方法がありますでしょうか?
18 :
14 :2011/02/16(水) 21:17:20
>>15 規制で遅くなりました。ありがとうございます。
>>17 データフレームが縦横逆になっているということですか?
それなら関数t()を使えば通常のデーター形式になると思いますが。例えば
#irisデータを表示
iris
#縦と横が逆
t(iris)
#もう一度やると元に戻る
t(t(iris))
アウトライア分類と変数選択が同時にできる 線形回帰法ないのでしょうか
チルダ記号ってどういう意味なんでしょうか 関数(変数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
よく変数名に foo.bar と . でくぎられた名前があるのですが Rにもc++みたいなclassがあるのでしょうか
>>23 >何が問題だと考えられますか?
自己解決力もないのにマイナーな環境で動かす冒険心。
cranに RANSAC ないのは、そのぐらい自分で作れってことなの? lm繰り返し呼べばいいだけなんだけど
Mac の Carbon Emacs (23.2) で ESS 使い始めたんだけど、 R を呼び出すとメッセージが英語になる。 Terminal.app から R を呼んだ時は日本語表記なんだけど、 ESS 内でも日本語メッセージ使わせるためには何か設定が必要?
環境変数に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 で起動されている??
Rそのものの話題ではないけど、 模試の大学合否判定って、A判定が80%以上、E判定が20%未満だな。 97.5%以上とか2.5%以下とかにしないのはなぜなんだろう。
高校生を絶望の谷へ突き落とすような事はしてはいけないのさ。
35 :
32 :2011/03/08(火) 21:28:41.29
統計解析の本を見ていて、回帰分析と判別分析の違いかなと思えてきた。 p値が5%以下じゃないとモデルとして不適切などという手法ではないのでしょうね。
emacsからR使ってる人が多いんでしょうか?
筑波のCRANは停電というより地震による直接被害で、電気はきていますが、 漏水がひどい建物にあるので念のため落としています。 -- 岡田 2011-03-16 (水) 10:27:28
床がだいぶ乾いたので、筑波CRANミラー復旧させてみました。 -- 岡田 2011-03-17 (木) 13:17:57
Rのリストって 連想リストのことなの?
>>21 ?formula
>>22 Infになるなら、そもそもモデルが不適切
>>24 ?class
>>31 R環境の中からLANGを変更できるよ
>>36 誰も統計を取っていないが、昔はEmacs以外の選択肢が事実上なかった
>>39 全然違う
全レスって嫌われるのかなぁ
ステキです^^
Rでsuppot vector machineの分類の問題が解きたいので、 kernlab の中の SVM 関数 ksvmを使っているのですが、 例えばkernlab の中spamを分類すると、決定関数にsign関数で 符号化されて「spam」か「nonspam」の2値で結果が出力されます。 これを2値に符号化される前の決定関数で出力する方法はあるのでしょうか。 どなたかご存知の方はいらっしゃるでしょうか。
(祝) RStudio日本語対応!! 今の所特に日本語周りの不具合は無し というわけで不要になったTinn-Rをアンインスト NppToRは窓配置フリーが便利なのでとりあえず残しておく
>>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の方も、エディタ部分で日本語が怪しかったけど、 これも直った感じ。
線形回帰で変数選択とロバスト推定の同時が出来る方法ないですか
Rって中身はCなんですか? 遅延評価Cで書くのすごい大変なのに どうやってるんだろう
>>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さんはこっちに来ないのかな。
言語初心者ですので、教えていただきたいのですが このソフトpropensity scoreを用いて解析をするときの参考になるサイトや書籍がありましたら教えてください。
>>51 ありがとございます。
この休みにでもRのインストールからはじめてみます。
スレ違いかもしれませんが、propensity scoreを用いたマッチングでの解析を行うのに適したソフトは何でしょうか?
>>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
今あるパッケージはこれだけ。
ニューラルネットのパッケージnnetについて質問させてください。 すでにデータAを学習したネットワークにさらに別のデータBを学習させるにはどうすればいいのでしょうか?先にAとBを結合して読ませるのは時間がかかるために困っています。 他のパッケージなら出来るという情報もお待ちしています。
MySQLからダウンロードしたデータをRで計算して MySQLに返しつつ、gnuplotで描画しようと思っています RubyとかからMySQL、R、gnuplotを操作すべきか、 RからMySQLとgnuplotを操作すべきかで迷ってます みなさんならどんな風にしますか?
>>58 このスレ的には、Rの中からMySQLにアクセスして、
Rで描画する方向が第一選択だよな。
Rのグラフィック能力とgnuplotってほぼ同等と思っていたけど、
Rを使っているのにgnuplotを加えて使うのは理由は?
>>57 反応がないから、Rjpwikiの方に書かれてはいかが。
私はnnetパッケージを使わないので分からない。
60 :
57 :2011/05/06(金) 22:06:00.16
>>59 そうしてみます。ありがとうございました。
gnuplotの方が慣れているというだけです。 Rで描けるようになればR+MySQLなのでシンプルでいいですね。 ちょっとやってみます。ありがとうございました。
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%信頼区間を求めたいんですがその関数がよくわからないです誰かわかる人いらっしゃいますか?
>>62 Bayesian credible intervalは信頼区間じゃないよ
for (i in 1:5) {sprintf("%s", ticker[i,1])} だと上手く出力されないのはどうしてでしょう? 素人の質問ですみません
>>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が表示される。
>>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)を作成する。 プログラムソースが分かる人は教えてください。
>>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"
>>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)を作る。 誰か教えてください。
#include "/dev/console"
73 :
132人目の素数さん :2011/05/26(木) 00:30:46.84
#
74 :
132人目の素数さん :2011/05/26(木) 01:25:55.19
>>71 宿題?
ヒントだけ
> runif(10) < 5/100
[1] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE TRUE
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
乱数のところ、ソースみてもわからん。
乱数だからな
メルセンヌツイスターとかいうやつか
すいません、初心者です 株価の日次データが数年分あるんですが グラフのX軸の目盛りを年次にしたい場合はどうすればいいでしょう?
>>83 a <- ts(1:2000,start=c(2011,6),frequency=365)
plot(a)
>>84 早速のレスありがとうございます
株など営業日がある場合どうすればよろしいでしょうか?
祝日や年末年始などありますし
>>86 ありがとうございます。
パッケージガイドブックを買ってこようと思います。
これとR-tipsで頑張ります
RでVoigt関数(Gauss関数とLorentz関数のconvolution)でフィッティングするには、畳み込み積分を直接書くしかないのでしょうか。
89 :
あんでぃはストーカー ◆AdkZFxa49I :2011/06/23(木) 21:21:17.46
あんでぃ
format="%Y/%m" と書くと 2011/06 と出力されるけど、幅を節約して 11/06 とするにはどうすれば?
あ、ぐぐったら一瞬で判ってしまった %y だ
>>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"
おおー なんでEが平成なんだろう
>>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のサイトをみると、結構、「使い方」的なサイトが多く、 汎用言語の視点から書かれた、サイト、本が少ない(?)ような気がします。 たとえば、ほかの言語と比較しながら書かれたような 本、サイトなどあれば、教えていただきたいのですが。 ありますでしょうか。
ぐぐりにくい、というのがRの最大の弱点
>>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列のデータなのですが?
>>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の使い方だけの説明になってしまうのは
しかたがないと思いますよ。
× 大学の先生 ○ 情報科学が専門ではなく疫学やら統計屋が仕事の教員
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で遊んでいる組織ですね。 どいつもこいつも馬鹿ばっかり。 コネがないと絶対に採用されません。 公募する前から採用者は決まってます。
なんか嫌なことでもあった?
109 :
132人目の素数さん :2011/07/16(土) 20:02:28.47
国立情報学研究所 統計数理研究所 この二つは廃止で結構です。税金の無駄です。
110 :
132人目の素数さん :2011/07/16(土) 20:09:53.71
疫学や感染症のシミュレーションをやっている連中なんざw バカばっかりやなw あれで数学やっているつもりのもいるからw 頓珍漢なことばかりを言って来るw
猫
112 :
132人目の素数さん :2011/07/16(土) 20:58:33.45
というか、研究者というものは情熱と実力が必要だと思う。 しかし、単なる就職先のひとつとなっており、 学歴とコネのみで判断されるから。 実力で研究者になれるところって、少ないと思う。
そこの研究員全員の給料の上限を年収300万ぐらいにすれば他から文句はでないと思うよ。
職を失ったのか?
職を失ったんは結構前やがな。 猫
116 :
132人目の素数さん :2011/07/17(日) 13:55:02.20
>>113 最近の調査では勤労者の平均年収が
370万円ぐらいらしいんですよ。
ただし最頻値は250万円ぐらいですから、
一部の高給取りが平均を上げていると思います。
また、公務員の平均は500万円ぐらいらしいですが、
公務員だけの平均年収は公表されていません。
研究と称してPCで遊んでいるだけですから、
年収150万円でも十分だと思います。
>>116 『研究と称してPCで遊んでる人』だけをそういう待遇にしたら良いと
思います。但しソレをどうやって判定スルのかは現実には難しく、なの
で『虚偽院生と優秀院生の分離』と同様の困難が伴い兼ねませんね。
では質問ですが、虚偽院生に対してはどういう扱いが宜しいのでしょう
かね? やはり追放ですかね?
猫
118 :
132人目の素数さん :2011/07/17(日) 14:12:09.83
国立情報研究所も統計数理研究所も、仕事らしい仕事をしているのはほんの一部なのではないかな? 統計数理研究所では女の子の飲み物調査という論文もあったぞw
119 :
132人目の素数さん :2011/07/17(日) 14:24:35.05
>>117 虚偽院生とは、論文を書かない院生のことですか?
全く論文を書く気のない院生は追放でしかたないと思います。
少なくとも論文を何本か書いていて、研究費も助成金も1円も
受け取っておらず、アルバイトをして授業料を納めている奴は、
他の人の研究の邪魔をしないかぎりは、追放でなくて放置でいいと思います。
つまり、まあおれのことですけどね。
追放すべきは高い給料、研究費や助成金をたんまりもらっているのに
結果を出さない馬鹿な奴です。
これは院生だけではなく、助手も助教、準教授、教授も含まれます。
それらは能力と業績だけで判定されるべきだと思います。
その業績というのをどう判定するのかが難しいわけですけどね。
>>119 全くその通りだと思います。私が言う虚偽院生とは:
★★★『基礎体力も無ければ動機も無く、唯大学院に入学してしまったゾンビ』★★★
を指し示す言葉です。ですから恐らくは貴方の事ではないでしょう。放置
されていても自分から何かが出来る人は決してゾンビではアリマセンから。
猫
121 :
132人目の素数さん :2011/07/17(日) 14:41:00.64
>全くその通りだと思います。
つまり
>>119 の発言にまったく同意しているという解釈でよいですか?
123 :
132人目の素数さん :2011/07/17(日) 14:51:47.93
やっぱCOLDPLAYいいよねぇ 眼醒めたらゾンビみたいだったが、観てたら生気がもどってきた この辺のクオリティの高さは邦楽にはない、流石だとおもう。
コネっていうと響きは悪いけど、要するにコミュニティーを広げる努力をしてきたってことじゃない? 周囲と意見交換が出来るということは、非常に大きな能力であり財産だと思うよ そして研究室への貢献度という点で言えば 論文は書かないけどPCで遊べる程度の実力はあって、周囲と意見交換が出来る奴 > 一人黙々と論文を書く奴 だと自分は思う
なら年収も130万でいいな 月10万でボーナス(一ヶ月)も出て国家的身分は安泰 やりがいなんかまったくないと思うかもしれないが、言うことなしの職場じゃないか
>>116 それこそ、そこのなんとか研究所に問い合わせをして詳細資料(統計データ)請求すればいいんじゃないの?
ただ気になったんだけど、rlang使ってるなら「加重平均」ってなんのことかはしってるよね。
127 :
132人目の素数さん :2011/07/18(月) 02:46:14.96
↑馬鹿だ(笑
>>124 その考え方は決して認められない。大学は馬鹿がママゴトして遊ぶ場所
では断じてない。当然に:
★★★『黙々と論文を書く奴>論文は書かない奴』★★★
であり、PCで遊ぶかどうかや、周囲と意見交換が出来るかどうかなんて、
そんな事はどうでもヨロシ。
論文を書くかどうかだけが問題である。勘違いも甚だしい。ケシカラン。
猫
129 :
132人目の素数さん :2011/07/18(月) 03:34:40.12
>>128 まずお前が実績を出してから批判しような
R使うくらいならmatlab使った方がいいと思う
それはない
猫さんが正論をいっとる
134 :
132人目の素数さん :2011/07/18(月) 07:59:15.18
統計なんてやっている奴はバカw
135 :
132人目の素数さん :2011/07/18(月) 10:43:44.13
統計は低脳のやる学問もどきである どこの大学でも統計の先生の論文は下らんものばかり
量産可能で下らなくない論文とは例えばどういうのですか?
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 町役場の場合 以下 延々と書けます。
今渦中の経済産業省官僚のやることなんかはもっと姑息ですけどね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座標を表現することができません。 どの関数を扱えばいいかなど、わかる方がいらっしゃいましたら教えてください。
手で書いたら? 天気図も昔はそうしたよ。
144 :
132人目の素数さん :2011/07/18(月) 22:51:46.35
>>142 つか、授業聞いてなかったの?
全部説明したはずだけどね。
geoRで作成しなさいって言ったでしょ?
単位あげないよ!
データフレームの列名に日本語で文字化けして困ってます。 Rコマンダーでcsv経由。 RGUIはMSGhosicに設定。 コマンドでフォント指定以外に 対策あれば教えてください。
>>145 Rというよりそのcsvファイルがくせもの
解決策は2つ。
1. csvの文字コードを文字化けしないものに変更してからRに読み込む
2. Rの中でiconv()で文字コードを変換する
好きな方を選べ
>>146 了解です。
クリップボードを経由してみたら、ますます
酷くなりました。
特に列の変数名がボロボロです。
これはなにゆえでしょうか?
>>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()で、列名を自由に再設定できます。
列名が、文字化けしていて、なおかつ文字コードを変更する能力がないなら、
上記のような方法もあります。
[S] 東大, 弁護士, Re,
[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 となる。 この時の組み合わせをすべて求めたいのですが、 どうすれば良いでしょうか? よろしくお願いいたします
>>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
変数の値を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のように多機能でクールでフリーの幾何学ソフト無いですか?
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を最小化する式を選ぶだけなら適当に関数を作ればいけそうですが(スマートではないですね…)、その境界をどうやったらグラフに引けるかがわかりません。 どなたか教えてくだされば幸いです。 よろしくお願いします。
>>157 >z=ax+by … (i)
>z=cx+dy … (ii)
この式でzが等しくなるax+by=cx+dyを引けばよいです。
>式は最大で4つほど
組み合わせが6組あるから6本引いてください。
>xとyに関しては整数を想定しています。
境界線を引くときは整数という条件を無視し、
グラフを見る時に整数が線のどちら側にあるか判断してください。
R
、
matlab使い慣れてる人向けの R入門書ってないでしょうか
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
基本的なことで申し訳ありません。 ワークスペースを保存しようとすると1kbのファイルしか保存されず、保存に失敗します。 原因がわかればよろしくお願いします。
164 :
163 :2011/10/02(日) 02:08:38.40
すいません。圧縮されているんですね。 スレ汚しすいません。
g <- function(x) x^2 plot(g) こんな感じで半径1の円を描きたいのです。 教えてください。
>>165 symbols(0,0,circles=1,inches=FALSE)
お望みはこんな感じ?
>>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")
これで円になるだろ。
152ってなんだ、166の間違い
>>168 ありがとうございます。勉強になりました。
>>170 念のために、ちょっと改良
> plot(c(x,rev(x)),c(y,-y),type="l")
用途によるけど、円を描画したければ、symbolsを使った方が、
アスペクト比に影響されずに正円になるのでよいと思うが。
xy座標で円を描くと、asp=1にでもしない限り、普通は楕円になってしまう。
パッケージ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) となっていて、当方の利用の仕方に間違いがあるのかどうかも分かりません。 どなたか、この点についてご教示いただければと思います。
確率の推定を行いたい ロジスティック回帰のような、説明変数に対して単調増加する線形じゃなくて 多分ガウス曲線みたいな感じになると思うのだけれども なんか適当なパッケージないですかね?
質問です。 都道府県 学年 テスト点数 京都 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) } のようにしてますがいかんせんループで時間がかかります。 よろしくお願いいたします。
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 ...............
というようなデータフレームに変換するにはどうすればよいでしょうか。
これも現在はループを利用して処理をしております
よろしくお願いいたします。
データフレーム名を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コマンダーにお伺いをたててみたんですがね。
>>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.
>>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")
でどうでしょう。
>>181 reshape(data, idvar="CODE", v.name="VAL", timevar="CD", direction="wide")
でした。
184 :
17 :2011/10/25(火) 22:44:03.74
皆様ありがとうございました。 2つとも無事うまく解決できました。 やっぱりよくヘルプを読む必要がありますね。 精進します。
>>174 の例で、各都道府県別+学年毎に分けたグループそれぞれについて
1対1の全組み合わせのt.testを一気に行う方法があるでしょうか?
(loopで回す関数を自作したりしない出来合の方法で)
>>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の数が多く、 ループ数が非常におおくなります。 解決策などありますでしょうか? よろしくお願いします
>>187 code_2を因子化、tapply cor
by(DF[3:5], DF$CODE_2, cor) でいいんじゃないの?
>>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
[以下略]
diagを使わずにforで対角行列作れって言われた 九行九列で
>>193 宿題は自分でやれ。
無意味な課題であることには同情するが。
ヒントだけ > 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
パズルとしてdiag、for以外の方法でやってみた n=9;matrix(rep(rep(c(1,0),c(1,n)),n),n,n)
>>196 それは多分、定石に近いやり方だと思う。
APLでは同じロジックで以下のように書く。
n nρ1,(n←9)ρ0
一直線に並べた時のパターンを作っているのか かしこいな
>>196 rep()の回数にベクトルを指定できるとは知らなかった。
昔からだったっけ?repのexample()を見たら、listのrepとかがある。
もはや何でも有りだなw
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] を整数で割った、もしくは掛けた値ではありません
rep(0,n)じゃなくて rep(0,n-1)ではなくて?
>>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
>>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]
}
とループを回すしかありませんか?
よろしくお願いします
>>205 どんだけforが好きなんだよw
forの方がむしろ思いつかんわ
207 :
132人目の素数さん :2011/11/03(木) 16:14:38.08
ああいえば for you forever are you
>>205 result[[1:n]][ , 2:4]
ってやったらどうなりますか?
209 :
187 :2011/11/04(金) 23:43:30.93
210 :
132人目の素数さん :2011/11/06(日) 16:00:11.33
基礎的な質問で申し訳ないのですが 膨大なデータから、-1と1を判別して予測する集団学習で ランダムフォレスト、バギング、ブースティング、SVMの他に有用そうなものってありますか? ググっても上の4つくらいしか出ないのですが十分ですかね。
エクセルやNumbersに比べてRって見た目しょぼすぎだなwww味気なさ過ぎ もうちょっとグラフィックとかマシなのある?Mac使いとしはやっぱ見た目は重要。
>>211 Rはオブジェクト指向言語、BASIC、C、C++と比べて遥かに使いやすいし現実的な数値計算で使える。
#Excelと比較してC言語は地味でしょぼい
と嘆かれても困ったもんだ。RはExcelやNumbersとは用途が違う。
但し、重複する所もある。
具体的にはExcelのオプションの分析機能はRの機能と重なる。
使い分けが必要なんだな。
>>211 え?マジで言ってるとしたら勉強不足としか思えないのだが・・・
フォントを代えるなり、latticeやggplot2等のパッケージを試してみるといいよ
参照:
ttp://rgm2.lab.nig.ac.jp/RGM2/ これは蛇足だが、学術ソフトの画像出力として「味気ない」というのは明らかに利点
大事なのは見易さと正確性であって、派手なグラフが良いとか考えていると周りから痛い子扱いされるよ
214 :
213 :2011/11/07(月) 00:08:09.72
あぁ、アプリ画面等がしょぼいって事でしたら、
>>212 さんの意見を参考にして下さい
やっぱ派手さも大切だわ
分析する前が膨大な量のデータで、分析後も派手なグラフの結果では本質が掴めているとは言えないし読む人間も判断できない。 それでは分析する価値は無い。 例えば、ロジスティック回帰分析の場合、入力は膨大でもアウトプットはyesかno程度だよ。 まあ、派手なグラフィックパッケージを探したら?あるんじゃないの?
>>218 趣旨には賛同する。
> ロジスティック回帰分析の場合、入力は膨大でもアウトプットはyesかno程度
おーい。凡ミスか本気でそう思っているのかどっちだ?
>>218 なぜ結果がグラフィカルというだけで本質が掴めてるとは言えないの?
結果は変わらないだろうにww
あなた自身が本質を掴めてないのではww
>>220 横から参戦させてもらうが、そもそもデータ分析の目的は、
データに含まれる枝葉末節を取り除き、データの中に隠れている本質を洗い出すことにある。
苦労して洗い出した本質にまた余計なものを加えて汚すのはこれ如何に?
222 :
132人目の素数さん :2011/11/07(月) 16:20:49.99
どなたかパッケージのtuneRに詳しい人いないですか?
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という方法も存在するよ。
面白い話が聞けた
>>218 の豹変ぶりに笑った
データの可視化の話と、派手なグラフィックで装飾する話は別の話だと思うが。
230 :
218 :2011/11/08(火) 22:42:06.35
>>229 ああ、そうなのか。まじめに答えちまったい(^_^)。
でもn次元を2次元に強引にマッピングして可視化するSOMって人間が感覚的にデータの善し悪しを判断する時に結構使えると思うんだよね。
まあ、いいや。
結局さ、本質を取り出すことに意義を感じる研究者と、 データで相手を説得することに意義を感じるビジネスマンは、 相容れないと思うんだ。円グラフを立体化して一部を切り出したり、 棒グラフを無意味に立体化したり、グラデーションで彩色したりというのは、 ビジネスマンに必要かも知れないけど、研究者には必要がない。
質問があります。 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は初めて使うので基礎的な事しかわかりませんが、どうかご教授ください。
>>232 直にMySQLならデータベースに直にSQLアクセスするパッケージを使う必要があるのでは?RODBCだっけ?
テキストに書き出して読み込むなら、read.tableがつかえると思けど時間が混じると読み込んでから変換が必要だと思う。
いずれも、Rデータ自由自在に書いてあると思う
1.i行j列成分がi^2+j^3で与えられる10行10列の行列をfor文を用いて作りなさい。 2.a=1000:1を作成してこれを昇順に並び替えなさい。 3.A=matrix(400:1,20,20)を作成し、この行列を第1列の値が昇順に並ぶように行を並び替えなさい
↑の回答わかる方お願いします。
>>234 また宿題か。
まさか試験中に書き込んでる?
>>234 > 1.i行j列成分がi^2+j^3で与えられる10行10列の行列をfor文を用いて作りなさい。
しかし、Rでfor文ってその教授はバカじゃないの?
常識的に
outer((1:10)^2,(1:10)^3,'+')
ってやるものじゃないのか?
>>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,]
R初心者として質問です。 Rを外部プロセスから呼び出したり、 シェルからRプログラムを渡して標準出力で受け取ったりはできるのでしょうか。 なにとぞよろしくお願いします。
>>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
>>239 シェルスクリプトから、短いRスクリプトを呼ぶなら、
ヒアドキュメントを使う方法が個人的に好き。
R --vanilla --slave <<_END_OF_R_ > output_of_R.txt
print(pi)
_END_OF_R_
別に、Rに限らず、PerlでもPythonでもこの方法は使えますが、、、
>>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
魂は幾何学 誰か(アメリカ)気づいた ソウルコピー機器
persp関数により3次元グラフを描画しているのですが、borderの幅が小さいためか、グラフが真っ黒になってしまいます。 この幅を変更する方法はありますか?また、他の解決方法がありましたら、教えてください。
>>247 グラフを大きくした方がよさげだけど、
pdf(file="247.pdf",width=14,height=14)
persp(...)
dev.off()
ぐらいから、サイズを試行錯誤してみれば?
borderの幅が線幅のことなら、lwdなどで指定する。
>>248 コメントありがとうございます。
サイズや、線幅を変えて試行錯誤してみましたが、どうもborderの線と線の間隔が狭いのが原因のようです。
この線と線の間隔の設定はできないのでしょうか?よろしくお願いします。
251 :
132人目の素数さん :2011/11/25(金) 21:55:00.40
いや、講習会じゃないんだけど…
解答分かる方お願いします <演習問題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列目の平均を計算しなさい。
教員がココを見ていたら、
>>254 には単位をやらないことを勧める。
>>254 解答は1つではなく、人によって全く異なる解答例になる。
「100字以内で答えよ」という問題の解答が1人1人異なるのと同じ。
誰かがここに解答を示すかも知れないが、
ここの解答を写したことは、自分で独自に改変しない限り、バレるよ。
興味ない授業だが、取らなきゃいけない科目とかなのかな?
>>254 ヒント
names関数、xxxnames関数
LETTERS[1:10]、letters[1:10]
(LETTERS、letters は、組み込みの定数ベクター)
質問させてください データフレーム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] でやろうかと思っていますが データ数がデータ数なのでもっと高速な方法がありましたらご教授ください お願いいたします
>>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言語にデメリットがあって連携しないのかなと思ったのですが
>>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など。。。
>>263 詳細、ありがとうございました
確実に言えるのは、デカいデータなので、後に使う予定がないのならDF1/DF2は作るなっ
てことかな (object保持の負荷が大きい)。他にも不要なobjectはrm()しておく
tcombi <- t(combi) # これは 2000C2 でも瞬時
DFZ <- cbind(tcombi, DF[tcombi[, 1], -1] + DF[tcombi[, 2], -1])
とするだけでも、「少しは」速くなるはず
DFZも丸ごと全部作らないで、tcombiを適当に分割したのを使って部分的に作っては
その都度ファイルに追記書き出しして、最終的にファイルから読み込んで df 化する方が
速いかも(テストしてないけど)
もう既に試されたかもしれない、ありふれた考えなので申し訳ないが...
>>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を超えてしまいましたので
提示いただいた分割する方法でファイルに書き出して対応できました
ありがとうございました
>>267 32bitの壁が問題になるなら64bitつかった方がよいと思うのだけど。
自分はRのために3GB→6GBにメモリ増設した。
>> 267 よかったですね 参考のため、もし差し支えなければ、どれくらいの時間がかかったのか、 動作環境も含めて教えていただけないでしょうか?
270 :
132人目の素数さん :2011/12/10(土) 23:33:27.19
自然言語処理など、テキストを処理し、統計計算をしたいのですが、PythonとRとはどのように違うのでしょうか? やっぱ専門であるのでR言語の方がいいのでしょうか? PHP、データベースからデータを得て、処理結果を送り返すためのシステム部分にPythonかRを使いたいと考えています RとPythonを比較すること自体おかしいのかもしれませんが、上記のような処理の為の本を見ると、この2つが良く出てきます Pythonはプログラミング言語であるので、PHPとかとは処理の連携が簡単でしょうけど、R言語についてはプログラミングをしていても(そういう環境下では)殆ど情報が出てこない、名前を聞かないもので
>>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と呼ばれているのか。
2変数の非線形連立方程式の解き方教えていただけませんでしょうか?
ちょっと教えてください # 疑似観測値 (行方向はパターン、列方向は時系列) 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と同じ)を作成したいのですが、 良い方法はありますでしょうか
来年から文系大学生です。 R言語って文系学部でも使いますか? あと、使えると就職や進学に有利でしょうかね?
>>277 文系とは具体的に、どの分野?
経済学や社会学など社会科学分野なら統計解析は必須だろうし、
その他の文系でも、心理学、計算言語学、数理地理学とかデータ処理を扱うなら、
統計解析は必須だろう。統計解析を行うなら、R言語を使うこともあるだろう。
Rを自由自在に使えると就職や進学に有利かと問われれば、多くの場合、否でしょう。
>>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 とでるんですが、どうなおせばよいでしょうか。
>>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 あー、ソースレベルって事すか。
バイナリリリースはちょっと待てっていうことですかね。
ありがとうございました。
288 :
132人目の素数さん :2011/12/27(火) 02:47:24.36
わからなかったので教えてください。 階層型クラスタ分析には、サンプル(ケース)に対してクラスタリングするのか、 変数に対してクラスタリングするのかでわかれるかと思いますが、 Rではサンプルに対してしかクラスタ分析できないのでしょうか?
289 :
132人目の素数さん :2011/12/30(金) 12:46:23.67
UNIXにインストールされている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でした。
>>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 これをややこしいと思う人は、
incase-sensitiveな文化に脳を冒されている人
>>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だな。
>>298 MacPorts版のMacOSX版(ややこしいな)だとどうだろう。
簡単そうでなかなかできないので相談させてください。 > 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)が取り出せるはず。
## ベクトルまで分解する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]})
>>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
その程度しか検索単語が思い浮かばないようでは()難しい
>>303 まぁ
r-project
r-script
r 統計
このあたりですね
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
>>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
315 :
308 :2012/01/18(水) 12:33:01.61
316 :
308 :2012/01/18(水) 22:59:15.60
317 :
308 :2012/01/18(水) 22:59:44.42
318 :
308 :2012/01/18(水) 23:01:26.21
319 :
308 :2012/01/18(水) 23:08:57.17
320 :
308 :2012/01/18(水) 23:35:40.76
321 :
308 :2012/01/19(木) 08:20:42.49
322 :
308 :2012/01/19(木) 08:22:06.35
323 :
308 :2012/01/19(木) 08:23:29.36
326 :
308 :2012/01/19(木) 08:26:49.60
329 :
308 :2012/01/19(木) 19:21:49.25
>>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があったとは。
おおそんウェールズだったとは。
341 :
308 :2012/01/20(金) 04:32:17.58
おまえら、いい加減にしなさい。
おまえら、いい加減にしなさい。
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
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], ???????) で,「???????」を指定すればいいと思うのですが,,,, よろしくお願いします
>>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
RStudio最新版(0.94.110)はR-2.14以降も動作していますか? RStudioご利用の方いましたら、ご一報お願いします
>>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
問題なし。
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.... としたいのです。 もし可能ならこのような場合,最初の文字列を配列に組み込むべきなのか,文字列として正規表現として処理するべきなのかどちらが好ましいのでしょうか? よろしくお願いします
>>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()部分をもっと効率よくできる気がする。
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の場合どの系統のプログラミング教本で勉強を始めれば良いのでしょうか? オススメ教科書があればよろしくお願い致します。
>>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
基本的な物を見落としておりますた。 すみません
>>364 sum(vector.name[p:q])
が一番普通か
コンタープロットで、データがマトリクスになっている場合はいいのですが (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
>>367 ぱっと思いつくのは、グリッドを作成して、(x,y,z)の値から、スプラインやkrigingなど
空間平滑法で各グリッド点における値を推定し、それで等値線を描く。
369 :
名無しさん :2012/01/30(月) 21:51:46.12 ID:???
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:???
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:???
まさに誰得関数!
知恵を貸してください。 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
>>381-383 おぉ、十分です。最大は「6ぐらい」なので7とかでもOKですから、
丸めはマイナスになるときだけ必要です。
for文のところはとても勉強になりました。
ありがとうございました。
こんばんは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したいのです。 どうかご教授ください。
>>385 X1 <- X[(0:20)*5+2, ]
>>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をつくる
>>385 1,5,...,100 は、最初だけ4行の間隔ですね。
5,10,15,...,100 、あるいは、1,6,11,...,96 ですか?
でしたら、私のお薦めも
>>387 と同じ方法。
Emacs ESS でアンダースコアが" <- "になってしまうのが凄く迷惑なんだけど なんであれがデフォルトなんだろう
タイプ量減るしいいじゃん。
>>389 アンダースコア2度打ちで、アンダースコアを入力できるというのを
知った上で迷惑と行っているのだろうね。
そもそもRではアンダースコアは使用禁止だったので、
空いているアンダースコアにその機能が割り当てられたという歴史的経緯がある。
デフォルトの理由は、
>>390 の言うとおり便利で楽だかから。
いやな人は設定を変更すればいいし。
逆にターミナルでRを使っていて、<-のつもりでアンダースコアを入力して
イラッと来ることがある。
>>391 設定変えるためにググってたらrjpに飛んで、そこで初めて二度打ちやC-q _ でアンダースコアを入力できることを知った
アンダースコアを打つためにわざわざテキストモードに変更してた
よく調べもしないで愚痴言ってすいません
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 ご指摘のとおりで。
研究仲間がコマンダー使ってて、両方同時に使えると便利だから試しました。
まぁそうじゃなくても使えないよりは使えたほうが少しくらい便利かなと、、、
Rにはschemeなんかのfoldにあたるような高階関数はないんですか? せっかくベクトル演算言語なので数え上げも高階関数で出来ればと思ったんですが。
>>398 たぶん Reduce()がfoldに相当するんじゃね
400 :
397 :2012/02/16(木) 16:23:10.40
401 :
398 :2012/02/16(木) 16:52:41.50
>>400 いまいちイメージがわかないんだけど、面白い使い方があったら、教えてくだされ
402 :
132人目の素数さん :2012/02/17(金) 05:50:16.64
lmによる回帰分析で、切片をあらかじめ固定することはできますか? 切片を取り除くには「-1」を指定するということはわかりますが、ここを好きな値に固定したいのですが・・・
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なんかが薄くていい本なんじゃないかと思います。
>>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/下の方が/後者の方が/
>>404 「おぉ高階関数はこれほどまでに便利なものかと実感できる事例」を期待している。
rubyで高階関数組み合わせてやってたけど Rに移ってtapplyとかmapplyが便利すぎて禿げた
>>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::|::|::::::|:::::::::::::::/
教えてください。 Epiパッケージを使用して、ROC曲線下面積を求めたら0.5未満になりました。 独立変数は二分変数に関係しないと判断しその値(0.425)を記載することは正しいのでしょうか?
アウトカムの変数は予測因子の数字が大きくなると大きくなると陽性になりますか?もし数が大きい方がアウトカムが陰性ならば、アウトカムの1,0をひっくり返す必要があるかも?
>>414 ありがとうございます。
明日にでも、いれかえて検討してみます。
416 :
132人目の素数さん :2012/02/29(水) 23:39:27.42
応答曲面法で最適値を求めるっていうのは出来ないのか? パッケージrsmがそれっぽいんだが
418 :
132人目の素数さん :2012/03/03(土) 12:45:30.73
Rを2.14.2にしたいんですが、インストールして再起動すると確かに2.14.2にはなるんですが、保存していたオブジェクトが全て消えてしまいます オブジェクトを引き継ぐ方法はないんでしょうか? 今は2.13.1を使ってます
save(list = ls(all=TRUE), file = "old.RData") で明示的に保存ファイルを作って、 それを新バージョンで load(file = "old.RData") したらどうなる?
マルチコア対応しましたか〜??
parallelというパッケージができたね
>>420 ググると、gotoBLASをマルチコア向けにコンパイルしてRで利用する話が、
詳しく解説されている。
調子に乗ってcuBLASに差し替えられないかと考え、
プログラム板のcudaスレに行ったことがあるが、
あそこの住人はnvccを使わない人間をバカだと考えているみたいだ。
423 :
420 :2012/03/04(日) 22:56:21.28
>>421 >>422 良い情報をありがとうございます。
調べてみます。
シングルスレッド性能でのCPU探しも終わりにしたいですw
今なら分散処理じゃ無いかな。IT系のWebサイトじゃあ hadoop とか流行ってるし、 解きたい課題を Map-Reduce に落とし込めればRでの分散処理も可能かと。
426 :
132人目の素数さん :2012/03/11(日) 23:35:42.80
R初心者でpolr関数を使って解析しているのですが、 P値の出し方がわかりません。 お分かりになる方いらっしゃいましたら教えて頂けないでしょうか。 詳細な情報が必要であれば補足します。
__ノ)-'´ ̄ ̄`ー- 、_ , '´ _. -‐'''"二ニニ=-`ヽ、 / /:::::; -‐''" `ーノ / /:::::/ \ / /::::::/ | | | | | |:::::/ / | | | | | | | |::/ / / | | || | | ,ハ .| ,ハ| | |/ / / /| ,ハノ| /|ノレ,ニ|ル' | | | / / レ',二、レ′ ,ィイ|゙/ 私は只の数ヲタなんかとは付き合わないわ。 . | \ ∠イ ,イイ| ,`-' | 頭が良くて数学が出来てかっこいい人。それが必要条件よ。 | l^,人| ` `-' ゝ | さらに Ann.of Math に論文書けば十分条件にもなるわよ。 | ` -'\ ー' 人 一番嫌いなのは論文数を増やすためにくだらない論文を書いて | /(l __/ ヽ、 良い論文の出版を遅らせるお馬鹿な人。 | (:::::`‐-、__ |::::`、 ヒニニヽ、 あなたの論文が Ann of Math に accept される確率は? | / `‐-、::::::::::`‐-、::::\ /,ニニ、\ それとも最近は Inv. Math. の方が上かしら? | |::::::::::::::::::|` -、:::::::,ヘ ̄|'、 ヒニ二、 \ . | /::::::::::::::::::|::::::::\/:::O`、::\ | '、 \ | /:::::::::::::::::::/:::::::::::::::::::::::::::::'、::::\ノ ヽ、 | | |:::::/:::::::::/:::::::::::::::::::::::::::::::::::'、',::::'、 /:\__/‐、 | |/:::::::::::/::::::::::::::::::::::::::::::::::O::| '、::| く::::::::::::: ̄| | /_..-'´ ̄`ー-、:::::::::::::::::::::::::::::::::::|/:/`‐'::\;;;;;;;_| | |/::::::::::::::::::::::\:::::::::::::::::::::::::::::|::/::::|::::/:::::::::::/ | /:::::::::::::::::::::::::::::::::|:::::::::::::::::::::O::|::|::::::|:::::::::::::::/
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")
とかでもいいのか。でも、なんか面倒だな。
>>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作成時間を入れておくとかかな。
どうやったらできるか分からないけど。
スクリプトをファイルに書き出して基本的にはバッチモードでRを動作させております。 その場合のエラーハンドリングってどうしてますか? stop関数で停止はするのですが、 どの関数のどの行数で停止したかなどがいまいちわかりづらいときがあります。 引数で与えるコメントを変えればいいのでしょうが、いちいち面倒なので。。。 例えばCだと printf("%s %s\n", __FILE__, __LINE__); なんかで対応できるんですが。。 いい方法ありますか?
__ノ)-'´ ̄ ̄`ー- 、_ , '´ _. -‐'''"二ニニ=-`ヽ、 / /:::::; -‐''" `ーノ / /:::::/ \ / /::::::/ | | | | | |:::::/ / | | | | | | | |::/ / / | | || | | ,ハ .| ,ハ| | |/ / / /| ,ハノ| /|ノレ,ニ|ル' | | | / / レ',二、レ′ ,ィイ|゙/ 私は只の数ヲタなんかとは付き合わないわ。 . | \ ∠イ ,イイ| ,`-' | 頭が良くて数学が出来てかっこいい人。それが必要条件よ。 | l^,人| ` `-' ゝ | さらに Ann.of Math に論文書けば十分条件にもなるわよ。 | ` -'\ ー' 人 一番嫌いなのは論文数を増やすためにくだらない論文を書いて | /(l __/ ヽ、 良い論文の出版を遅らせるお馬鹿な人。 | (:::::`‐-、__ |::::`、 ヒニニヽ、 あなたの論文が Ann of Math に accept される確率は? | / `‐-、::::::::::`‐-、::::\ /,ニニ、\ それとも最近は Inv. Math. の方が上かしら? | |::::::::::::::::::|` -、:::::::,ヘ ̄|'、 ヒニ二、 \ . | /::::::::::::::::::|::::::::\/:::O`、::\ | '、 \ | /:::::::::::::::::::/:::::::::::::::::::::::::::::'、::::\ノ ヽ、 | | |:::::/:::::::::/:::::::::::::::::::::::::::::::::::'、',::::'、 /:\__/‐、 | |/:::::::::::/::::::::::::::::::::::::::::::::::O::| '、::| く::::::::::::: ̄| | /_..-'´ ̄`ー-、:::::::::::::::::::::::::::::::::::|/:/`‐'::\;;;;;;;_| | |/::::::::::::::::::::::\:::::::::::::::::::::::::::::|::/::::|::::/:::::::::::/ | /:::::::::::::::::::::::::::::::::|:::::::::::::::::::::O::|::|::::::|:::::::::::::::/
__ノ)-'´ ̄ ̄`ー- 、_ , '´ _. -‐'''"二ニニ=-`ヽ、 / /:::::; -‐''" `ーノ / /:::::/ \ / /::::::/ | | | | | |:::::/ / | | | | | | | |::/ / / | | || | | ,ハ .| ,ハ| | |/ / / /| ,ハノ| /|ノレ,ニ|ル' | | | / / レ',二、レ′ ,ィイ|゙/ 私は只の数ヲタなんかとは付き合わないわ。 . | \ ∠イ ,イイ| ,`-' | 頭が良くて数学が出来てかっこいい人。それが必要条件よ。 | l^,人| ` `-' ゝ | さらに Ann.of Math に論文書けば十分条件にもなるわよ。 | ` -'\ ー' 人 一番嫌いなのは論文数を増やすためにくだらない論文を書いて | /(l __/ ヽ、 良い論文の出版を遅らせるお馬鹿な人。 | (:::::`‐-、__ |::::`、 ヒニニヽ、 あなたの論文が Ann of Math に accept される確率は? | / `‐-、::::::::::`‐-、::::\ /,ニニ、\ それとも最近は Inv. Math. の方が上かしら? | |::::::::::::::::::|` -、:::::::,ヘ ̄|'、 ヒニ二、 \ . | /::::::::::::::::::|::::::::\/:::O`、::\ | '、 \ | /:::::::::::::::::::/:::::::::::::::::::::::::::::'、::::\ノ ヽ、 | | |:::::/:::::::::/:::::::::::::::::::::::::::::::::::'、',::::'、 /:\__/‐、 | |/:::::::::::/::::::::::::::::::::::::::::::::::O::| '、::| く::::::::::::: ̄| | /_..-'´ ̄`ー-、:::::::::::::::::::::::::::::::::::|/:/`‐'::\;;;;;;;_| | |/::::::::::::::::::::::\:::::::::::::::::::::::::::::|::/::::|::::/:::::::::::/ | /:::::::::::::::::::::::::::::::::|:::::::::::::::::::::O::|::|::::::|:::::::::::::::/
__ノ)-'´ ̄ ̄`ー- 、_ , '´ _. -‐'''"二ニニ=-`ヽ、 / /:::::; -‐''" `ーノ / /:::::/ \ / /::::::/ | | | | | |:::::/ / | | | | | | | |::/ / / | | || | | ,ハ .| ,ハ| | |/ / / /| ,ハノ| /|ノレ,ニ|ル' | | | / / レ',二、レ′ ,ィイ|゙/ 私は只の数ヲタなんかとは付き合わないわ。 . | \ ∠イ ,イイ| ,`-' | 頭が良くて数学が出来てかっこいい人。それが必要条件よ。 | l^,人| ` `-' ゝ | さらに Ann.of Math に論文書けば十分条件にもなるわよ。 | ` -'\ ー' 人 一番嫌いなのは論文数を増やすためにくだらない論文を書いて | /(l __/ ヽ、 良い論文の出版を遅らせるお馬鹿な人。 | (:::::`‐-、__ |::::`、 ヒニニヽ、 あなたの論文が Ann of Math に accept される確率は? | / `‐-、::::::::::`‐-、::::\ /,ニニ、\ それとも最近は Inv. Math. の方が上かしら? | |::::::::::::::::::|` -、:::::::,ヘ ̄|'、 ヒニ二、 \ . | /::::::::::::::::::|::::::::\/:::O`、::\ | '、 \ | /:::::::::::::::::::/:::::::::::::::::::::::::::::'、::::\ノ ヽ、 | | |:::::/:::::::::/:::::::::::::::::::::::::::::::::::'、',::::'、 /:\__/‐、 | |/:::::::::::/::::::::::::::::::::::::::::::::::O::| '、::| く::::::::::::: ̄| | /_..-'´ ̄`ー-、:::::::::::::::::::::::::::::::::::|/:/`‐'::\;;;;;;;_| | |/::::::::::::::::::::::\:::::::::::::::::::::::::::::|::/::::|::::/:::::::::::/ | /:::::::::::::::::::::::::::::::::|:::::::::::::::::::::O::|::|::::::|:::::::::::::::/
__ノ)-'´ ̄ ̄`ー- 、_ , '´ _. -‐'''"二ニニ=-`ヽ、 / /:::::; -‐''" `ーノ / /:::::/ \ / /::::::/ | | | | | |:::::/ / | | | | | | | |::/ / / | | || | | ,ハ .| ,ハ| | |/ / / /| ,ハノ| /|ノレ,ニ|ル' | | | / / レ',二、レ′ ,ィイ|゙/ 私は只の数ヲタなんかとは付き合わないわ。 . | \ ∠イ ,イイ| ,`-' | 頭が良くて数学が出来てかっこいい人。それが必要条件よ。 | l^,人| ` `-' ゝ | さらに Ann.of Math に論文書けば十分条件にもなるわよ。 | ` -'\ ー' 人 一番嫌いなのは論文数を増やすためにくだらない論文を書いて | /(l __/ ヽ、 良い論文の出版を遅らせるお馬鹿な人。 | (:::::`‐-、__ |::::`、 ヒニニヽ、 あなたの論文が Ann of Math に accept される確率は? | / `‐-、::::::::::`‐-、::::\ /,ニニ、\ それとも最近は Inv. Math. の方が上かしら? | |::::::::::::::::::|` -、:::::::,ヘ ̄|'、 ヒニ二、 \ . | /::::::::::::::::::|::::::::\/:::O`、::\ | '、 \ | /:::::::::::::::::::/:::::::::::::::::::::::::::::'、::::\ノ ヽ、 | | |:::::/:::::::::/:::::::::::::::::::::::::::::::::::'、',::::'、 /:\__/‐、 | |/:::::::::::/::::::::::::::::::::::::::::::::::O::| '、::| く::::::::::::: ̄| | /_..-'´ ̄`ー-、:::::::::::::::::::::::::::::::::::|/:/`‐'::\;;;;;;;_| | |/::::::::::::::::::::::\:::::::::::::::::::::::::::::|::/::::|::::/:::::::::::/ | /:::::::::::::::::::::::::::::::::|:::::::::::::::::::::O::|::|::::::|:::::::::::::::/
__ノ)-'´ ̄ ̄`ー- 、_ , '´ _. -‐'''"二ニニ=-`ヽ、 / /:::::; -‐''" `ーノ / /:::::/ \ / /::::::/ | | | | | |:::::/ / | | | | | | | |::/ / / | | || | | ,ハ .| ,ハ| | |/ / / /| ,ハノ| /|ノレ,ニ|ル' | | | / / レ',二、レ′ ,ィイ|゙/ 私は只の数ヲタなんかとは付き合わないわ。 . | \ ∠イ ,イイ| ,`-' | 頭が良くて数学が出来てかっこいい人。それが必要条件よ。 | l^,人| ` `-' ゝ | さらに Ann.of Math に論文書けば十分条件にもなるわよ。 | ` -'\ ー' 人 一番嫌いなのは論文数を増やすためにくだらない論文を書いて | /(l __/ ヽ、 良い論文の出版を遅らせるお馬鹿な人。 | (:::::`‐-、__ |::::`、 ヒニニヽ、 あなたの論文が Ann of Math に accept される確率は? | / `‐-、::::::::::`‐-、::::\ /,ニニ、\ それとも最近は Inv. Math. の方が上かしら? | |::::::::::::::::::|` -、:::::::,ヘ ̄|'、 ヒニ二、 \ . | /::::::::::::::::::|::::::::\/:::O`、::\ | '、 \ | /:::::::::::::::::::/:::::::::::::::::::::::::::::'、::::\ノ ヽ、 | | |:::::/:::::::::/:::::::::::::::::::::::::::::::::::'、',::::'、 /:\__/‐、 | |/:::::::::::/::::::::::::::::::::::::::::::::::O::| '、::| く::::::::::::: ̄| | /_..-'´ ̄`ー-、:::::::::::::::::::::::::::::::::::|/:/`‐'::\;;;;;;;_| | |/::::::::::::::::::::::\:::::::::::::::::::::::::::::|::/::::|::::/:::::::::::/ | /:::::::::::::::::::::::::::::::::|:::::::::::::::::::::O::|::|::::::|:::::::::::::::/
__ノ)-'´ ̄ ̄`ー- 、_ , '´ _. -‐'''"二ニニ=-`ヽ、 / /:::::; -‐''" `ーノ / /:::::/ \ / /::::::/ | | | | | |:::::/ / | | | | | | | |::/ / / | | || | | ,ハ .| ,ハ| | |/ / / /| ,ハノ| /|ノレ,ニ|ル' | | | / / レ',二、レ′ ,ィイ|゙/ 私は只の数ヲタなんかとは付き合わないわ。 . | \ ∠イ ,イイ| ,`-' | 頭が良くて数学が出来てかっこいい人。それが必要条件よ。 | l^,人| ` `-' ゝ | さらに Ann.of Math に論文書けば十分条件にもなるわよ。 | ` -'\ ー' 人 一番嫌いなのは論文数を増やすためにくだらない論文を書いて | /(l __/ ヽ、 良い論文の出版を遅らせるお馬鹿な人。 | (:::::`‐-、__ |::::`、 ヒニニヽ、 あなたの論文が Ann of Math に accept される確率は? | / `‐-、::::::::::`‐-、::::\ /,ニニ、\ それとも最近は Inv. Math. の方が上かしら? | |::::::::::::::::::|` -、:::::::,ヘ ̄|'、 ヒニ二、 \ . | /::::::::::::::::::|::::::::\/:::O`、::\ | '、 \ | /:::::::::::::::::::/:::::::::::::::::::::::::::::'、::::\ノ ヽ、 | | |:::::/:::::::::/:::::::::::::::::::::::::::::::::::'、',::::'、 /:\__/‐、 | |/:::::::::::/::::::::::::::::::::::::::::::::::O::| '、::| く::::::::::::: ̄| | /_..-'´ ̄`ー-、:::::::::::::::::::::::::::::::::::|/:/`‐'::\;;;;;;;_| | |/::::::::::::::::::::::\:::::::::::::::::::::::::::::|::/::::|::::/:::::::::::/ | /:::::::::::::::::::::::::::::::::|:::::::::::::::::::::O::|::|::::::|:::::::::::::::/
__ノ)-'´ ̄ ̄`ー- 、_ , '´ _. -‐'''"二ニニ=-`ヽ、 / /:::::; -‐''" `ーノ / /:::::/ \ / /::::::/ | | | | | |:::::/ / | | | | | | | |::/ / / | | || | | ,ハ .| ,ハ| | |/ / / /| ,ハノ| /|ノレ,ニ|ル' | | | / / レ',二、レ′ ,ィイ|゙/ 私は只の数ヲタなんかとは付き合わないわ。 . | \ ∠イ ,イイ| ,`-' | 頭が良くて数学が出来てかっこいい人。それが必要条件よ。 | l^,人| ` `-' ゝ | さらに Ann.of Math に論文書けば十分条件にもなるわよ。 | ` -'\ ー' 人 一番嫌いなのは論文数を増やすためにくだらない論文を書いて | /(l __/ ヽ、 良い論文の出版を遅らせるお馬鹿な人。 | (:::::`‐-、__ |::::`、 ヒニニヽ、 あなたの論文が Ann of Math に accept される確率は? | / `‐-、::::::::::`‐-、::::\ /,ニニ、\ それとも最近は Inv. Math. の方が上かしら? | |::::::::::::::::::|` -、:::::::,ヘ ̄|'、 ヒニ二、 \ . | /::::::::::::::::::|::::::::\/:::O`、::\ | '、 \ | /:::::::::::::::::::/:::::::::::::::::::::::::::::'、::::\ノ ヽ、 | | |:::::/:::::::::/:::::::::::::::::::::::::::::::::::'、',::::'、 /:\__/‐、 | |/:::::::::::/::::::::::::::::::::::::::::::::::O::| '、::| く::::::::::::: ̄| | /_..-'´ ̄`ー-、:::::::::::::::::::::::::::::::::::|/:/`‐'::\;;;;;;;_| | |/::::::::::::::::::::::\:::::::::::::::::::::::::::::|::/::::|::::/:::::::::::/ | /:::::::::::::::::::::::::::::::::|:::::::::::::::::::::O::|::|::::::|:::::::::::::::/
444 :
132人目の素数さん :2012/04/03(火) 21:15:56.45
__ノ)-'´ ̄ ̄`ー- 、_ , '´ _. -‐'''"二ニニ=-`ヽ、 / /:::::; -‐''" `ーノ / /:::::/ \ / /::::::/ | | | | | |:::::/ / | | | | | | | |::/ / / | | || | | ,ハ .| ,ハ| | |/ / / /| ,ハノ| /|ノレ,ニ|ル' | | | / / レ',二、レ′ ,ィイ|゙/ 私は只の数ヲタなんかとは付き合わないわ。 . | \ ∠イ ,イイ| ,`-' | 頭が良くて数学が出来てかっこいい人。それが必要条件よ。 | l^,人| ` `-' ゝ | さらに Ann.of Math に論文書けば十分条件にもなるわよ。 | ` -'\ ー' 人 一番嫌いなのは論文数を増やすためにくだらない論文を書いて | /(l __/ ヽ、 良い論文の出版を遅らせるお馬鹿な人。 | (:::::`‐-、__ |::::`、 ヒニニヽ、 あなたの論文が Ann of Math に accept される確率は? | / `‐-、::::::::::`‐-、::::\ /,ニニ、\ それとも最近は Inv. Math. の方が上かしら? | |::::::::::::::::::|` -、:::::::,ヘ ̄|'、 ヒニ二、 \ . | /::::::::::::::::::|::::::::\/:::O`、::\ | '、 \ | /:::::::::::::::::::/:::::::::::::::::::::::::::::'、::::\ノ ヽ、 | | |:::::/:::::::::/:::::::::::::::::::::::::::::::::::'、',::::'、 /:\__/‐、 | |/:::::::::::/::::::::::::::::::::::::::::::::::O::| '、::| く::::::::::::: ̄| | /_..-'´ ̄`ー-、:::::::::::::::::::::::::::::::::::|/:/`‐'::\;;;;;;;_| | |/::::::::::::::::::::::\:::::::::::::::::::::::::::::|::/::::|::::/:::::::::::/ | /:::::::::::::::::::::::::::::::::|:::::::::::::::::::::O::|::|::::::|:::::::::::::::/
チラ裏 Meadow 2.10(Emacs 21.4.1) + R 2.15.0 で、 ESS 5.14 → ESS 12.04 にしてみたら、 symbol's function definition is void と言われてしまい、 元に戻した今日の夕暮れ。
R2.15.0 って、なんか目玉機能あります?
448 :
132人目の素数さん :2012/04/20(金) 23:36:06.27
ソースコードが1つのファイルで2万行ぐらいになってしまったので 複数のファイルに分割したいのですがやり方がわかりません。 助けてください
__ノ)-'´ ̄ ̄`ー- 、_ , '´ _. -‐'''"二ニニ=-`ヽ、 / /:::::; -‐''" `ーノ / /:::::/ \ / /::::::/ | | | | | |:::::/ / | | | | | | | |::/ / / | | || | | ,ハ .| ,ハ| | |/ / / /| ,ハノ| /|ノレ,ニ|ル' | | | / / レ',二、レ′ ,ィイ|゙/ 私は只の数ヲタなんかとは付き合わないわ。 . | \ ∠イ ,イイ| ,`-' | 頭が良くて数学が出来てかっこいい人。それが必要条件よ。 | l^,人| ` `-' ゝ | さらに Ann.of Math に論文書けば十分条件にもなるわよ。 | ` -'\ ー' 人 一番嫌いなのは論文数を増やすためにくだらない論文を書いて | /(l __/ ヽ、 良い論文の出版を遅らせるお馬鹿な人。 | (:::::`‐-、__ |::::`、 ヒニニヽ、 あなたの論文が Ann of Math に accept される確率は? | / `‐-、::::::::::`‐-、::::\ /,ニニ、\ それとも最近は Inv. Math. の方が上かしら? | |::::::::::::::::::|` -、:::::::,ヘ ̄|'、 ヒニ二、 \ . | /::::::::::::::::::|::::::::\/:::O`、::\ | '、 \ | /:::::::::::::::::::/:::::::::::::::::::::::::::::'、::::\ノ ヽ、 | | |:::::/:::::::::/:::::::::::::::::::::::::::::::::::'、',::::'、 /:\__/‐、 | |/:::::::::::/::::::::::::::::::::::::::::::::::O::| '、::| く::::::::::::: ̄| | /_..-'´ ̄`ー-、:::::::::::::::::::::::::::::::::::|/:/`‐'::\;;;;;;;_| | |/::::::::::::::::::::::\:::::::::::::::::::::::::::::|::/::::|::::/:::::::::::/ | /:::::::::::::::::::::::::::::::::|:::::::::::::::::::::O::|::|::::::|:::::::::::::::/
__ノ)-'´ ̄ ̄`ー- 、_ , '´ _. -‐'''"二ニニ=-`ヽ、 / /:::::; -‐''" `ーノ / /:::::/ \ / /::::::/ | | | | | |:::::/ / | | | | | | | |::/ / / | | || | | ,ハ .| ,ハ| | |/ / / /| ,ハノ| /|ノレ,ニ|ル' | | | / / レ',二、レ′ ,ィイ|゙/ 私は只の数ヲタなんかとは付き合わないわ。 . | \ ∠イ ,イイ| ,`-' | 頭が良くて数学が出来てかっこいい人。それが必要条件よ。 | l^,人| ` `-' ゝ | さらに Ann.of Math に論文書けば十分条件にもなるわよ。 | ` -'\ ー' 人 一番嫌いなのは論文数を増やすためにくだらない論文を書いて | /(l __/ ヽ、 良い論文の出版を遅らせるお馬鹿な人。 | (:::::`‐-、__ |::::`、 ヒニニヽ、 あなたの論文が Ann of Math に accept される確率は? | / `‐-、::::::::::`‐-、::::\ /,ニニ、\ それとも最近は Inv. Math. の方が上かしら? | |::::::::::::::::::|` -、:::::::,ヘ ̄|'、 ヒニ二、 \ . | /::::::::::::::::::|::::::::\/:::O`、::\ | '、 \ | /:::::::::::::::::::/:::::::::::::::::::::::::::::'、::::\ノ ヽ、 | | |:::::/:::::::::/:::::::::::::::::::::::::::::::::::'、',::::'、 /:\__/‐、 | |/:::::::::::/::::::::::::::::::::::::::::::::::O::| '、::| く::::::::::::: ̄| | /_..-'´ ̄`ー-、:::::::::::::::::::::::::::::::::::|/:/`‐'::\;;;;;;;_| | |/::::::::::::::::::::::\:::::::::::::::::::::::::::::|::/::::|::::/:::::::::::/ | /:::::::::::::::::::::::::::::::::|:::::::::::::::::::::O::|::|::::::|:::::::::::::::/
>>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::|::|::::::|:::::::::::::::/
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::|::|::::::|:::::::::::::::/
>>455 突然どうしたの?
オレならecho X | cut -cS-Eをsystem()でやっちゃうな。
458 :
132人目の素数さん :2012/04/24(火) 12:16:39.44
>>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()が入った。
__ノ)-'´ ̄ ̄`ー- 、_ , '´ _. -‐'''"二ニニ=-`ヽ、 / /:::::; -‐''" `ーノ / /:::::/ \ / /::::::/ | | | | | |:::::/ / | | | | | | | |::/ / / | | || | | ,ハ .| ,ハ| | |/ / / /| ,ハノ| /|ノレ,ニ|ル' | | | / / レ',二、レ′ ,ィイ|゙/ 私は只の数ヲタなんかとは付き合わないわ。 . | \ ∠イ ,イイ| ,`-' | 頭が良くて数学が出来てかっこいい人。それが必要条件よ。 | l^,人| ` `-' ゝ | さらに Ann.of Math に論文書けば十分条件にもなるわよ。 | ` -'\ ー' 人 一番嫌いなのは論文数を増やすためにくだらない論文を書いて | /(l __/ ヽ、 良い論文の出版を遅らせるお馬鹿な人。 | (:::::`‐-、__ |::::`、 ヒニニヽ、 あなたの論文が Ann of Math に accept される確率は? | / `‐-、::::::::::`‐-、::::\ /,ニニ、\ それとも最近は Inv. Math. の方が上かしら? | |::::::::::::::::::|` -、:::::::,ヘ ̄|'、 ヒニ二、 \ . | /::::::::::::::::::|::::::::\/:::O`、::\ | '、 \ | /:::::::::::::::::::/:::::::::::::::::::::::::::::'、::::\ノ ヽ、 | | |:::::/:::::::::/:::::::::::::::::::::::::::::::::::'、',::::'、 /:\__/‐、 | |/:::::::::::/::::::::::::::::::::::::::::::::::O::| '、::| く::::::::::::: ̄| | /_..-'´ ̄`ー-、:::::::::::::::::::::::::::::::::::|/:/`‐'::\;;;;;;;_| | |/::::::::::::::::::::::\:::::::::::::::::::::::::::::|::/::::|::::/:::::::::::/ | /:::::::::::::::::::::::::::::::::|:::::::::::::::::::::O::|::|::::::|:::::::::::::::/
464 :
459 :2012/04/25(水) 00:40:38.22
>>463 10年以上前の情報だぞ。
書店で最新の本を買えよ
>>464 他にマニュアルの和訳したサイトってないんですか?
>>465 私の知る限りない。
現状では、マニュアルを読む気概がある人=英語でも大丈夫、という空気になっていて、
初心者や英語が苦手な人は、マニュアルを咀嚼した和書を購入すると思う。
sample(c("T", "F"), 1000, replace = TRUE) こうして作成したベルトルからTの個数を数えあげるには どうすればよいでしょうか for(i in 1:1000){}として一つ一つ値を見るしかないのでしょうか。
>>468 sum(sample(c("T", "F"), 1000, replace = TRUE))
c("T","F")だから、 sample(c("T", "F"), 1000, replace = TRUE)-> x sum(x=="T") でした。
>>468 長年のR利用経験から、おっさんが助言する。
"T"や"F"の文字列の使用は、トラブルの原因になる場合があるので、やめておけ。
なかなか気が付きにくいバクの原因になるから、
徹夜でトラブルシューティングするはめになるぞ。
"t"や"f"も使うな。
今回はsample(c("T", "F"), 1000, replace = TRUE)とする代わりに、
sample(c(T, F), 1000, replace = TRUE)とした方がよい。
"T"の代わりにTを、"F"の代わりにFを使うんだ。
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のベクトル このような表形式で結果をまとめるにはどうすればいいですか? ベクトルの操作だけでは全体の整形ができないようなのでわかりませんでした
>>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
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))) こういうこと??
説明不足ですみません
tex形式ではなくプレーンテキストで結果を見ることができれば十分です
>>473-475 のrbindやcbindで大丈夫そうです。ありがとうございます。
ただ欲を言えば[,1]のような見出し部分を取り除ければいいのですが、可能でしょうか。
?write.table
>>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
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にしてもそうなったままです
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()を使って文字列を分割するということは考えたのですが、 その先がわかりませんでした。
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))
>>484 abline(h = seq(0, 15 , 5))
ってこと。ちなみにcは関数名なので、代入するとおかしくならない?
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)
放大でRで統計やってたね
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 こんな風にです
>>493 library(gtools)
permutations(2, 3, c(T, F), repeats.allowed=TRUE)[8:1,]
>>494 ありがとうございます!まさにそれです。
permutation、ずばり順列そのもののコマンドがあるのですか。
勉強になりました。
__ノ)-'´ ̄ ̄`ー- 、_ , '´ _. -‐'''"二ニニ=-`ヽ、 / /:::::; -‐''" `ーノ / /:::::/ \ / /::::::/ | | | | | |:::::/ / | | | | | | | |::/ / / | | || | | ,ハ .| ,ハ| | |/ / / /| ,ハノ| /|ノレ,ニ|ル' | | | / / レ',二、レ′ ,ィイ|゙/ 私は只の数ヲタなんかとは付き合わないわ。 . | \ ∠イ ,イイ| ,`-' | 頭が良くて数学が出来てかっこいい人。それが必要条件よ。 | l^,人| ` `-' ゝ | さらに Ann.of Math に論文書けば十分条件にもなるわよ。 | ` -'\ ー' 人 一番嫌いなのは論文数を増やすためにくだらない論文を書いて | /(l __/ ヽ、 良い論文の出版を遅らせるお馬鹿な人。 | (:::::`‐-、__ |::::`、 ヒニニヽ、 あなたの論文が Ann of Math に accept される確率は? | / `‐-、::::::::::`‐-、::::\ /,ニニ、\ それとも最近は Inv. Math. の方が上かしら? | |::::::::::::::::::|` -、:::::::,ヘ ̄|'、 ヒニ二、 \ . | /::::::::::::::::::|::::::::\/:::O`、::\ | '、 \ | /:::::::::::::::::::/:::::::::::::::::::::::::::::'、::::\ノ ヽ、 | | |:::::/:::::::::/:::::::::::::::::::::::::::::::::::'、',::::'、 /:\__/‐、 | |/:::::::::::/::::::::::::::::::::::::::::::::::O::| '、::| く::::::::::::: ̄| | /_..-'´ ̄`ー-、:::::::::::::::::::::::::::::::::::|/:/`‐'::\;;;;;;;_| | |/::::::::::::::::::::::\:::::::::::::::::::::::::::::|::/::::|::::/:::::::::::/ | /:::::::::::::::::::::::::::::::::|:::::::::::::::::::::O::|::|::::::|:::::::::::::::/
__ノ)-'´ ̄ ̄`ー- 、_ , '´ _. -‐'''"二ニニ=-`ヽ、 / /:::::; -‐''" `ーノ / /:::::/ \ / /::::::/ | | | | | |:::::/ / | | | | | | | |::/ / / | | || | | ,ハ .| ,ハ| | |/ / / /| ,ハノ| /|ノレ,ニ|ル' | | | / / レ',二、レ′ ,ィイ|゙/ 私は只の数ヲタなんかとは付き合わないわ。 . | \ ∠イ ,イイ| ,`-' | 頭が良くて数学が出来てかっこいい人。それが必要条件よ。 | l^,人| ` `-' ゝ | さらに Ann.of Math に論文書けば十分条件にもなるわよ。 | ` -'\ ー' 人 一番嫌いなのは論文数を増やすためにくだらない論文を書いて | /(l __/ ヽ、 良い論文の出版を遅らせるお馬鹿な人。 | (:::::`‐-、__ |::::`、 ヒニニヽ、 あなたの論文が Ann of Math に accept される確率は? | / `‐-、::::::::::`‐-、::::\ /,ニニ、\ それとも最近は Inv. Math. の方が上かしら? | |::::::::::::::::::|` -、:::::::,ヘ ̄|'、 ヒニ二、 \ . | /::::::::::::::::::|::::::::\/:::O`、::\ | '、 \ | /:::::::::::::::::::/:::::::::::::::::::::::::::::'、::::\ノ ヽ、 | | |:::::/:::::::::/:::::::::::::::::::::::::::::::::::'、',::::'、 /:\__/‐、 | |/:::::::::::/::::::::::::::::::::::::::::::::::O::| '、::| く::::::::::::: ̄| | /_..-'´ ̄`ー-、:::::::::::::::::::::::::::::::::::|/:/`‐'::\;;;;;;;_| | |/::::::::::::::::::::::\:::::::::::::::::::::::::::::|::/::::|::::/:::::::::::/ | /:::::::::::::::::::::::::::::::::|:::::::::::::::::::::O::|::|::::::|:::::::::::::::/
__ノ)-'´ ̄ ̄`ー- 、_ , '´ _. -‐'''"二ニニ=-`ヽ、 / /:::::; -‐''" `ーノ / /:::::/ \ / /::::::/ | | | | | |:::::/ / | | | | | | | |::/ / / | | || | | ,ハ .| ,ハ| | |/ / / /| ,ハノ| /|ノレ,ニ|ル' | | | / / レ',二、レ′ ,ィイ|゙/ 私は只の数ヲタなんかとは付き合わないわ。 . | \ ∠イ ,イイ| ,`-' | 頭が良くて数学が出来てかっこいい人。それが必要条件よ。 | 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::|::|::::::|:::::::::::::::/
>>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)
============================
>>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::| '、::| く::::::::::::: ̄| | /_..-'´ ̄`ー-、:::::::::::::::::::::::::::::::::::|/:/`‐'::\;;;;;;;_| | |/::::::::::::::::::::::\:::::::::::::::::::::::::::::|::/::::|::::/:::::::::::/
b <- rbind(1:2) c <- cbind(1:2) b+c このような感じで 2 3 3 4 こういう結果を出すような方法はありますか? このまま実行したら >以下にエラー b + c : 適切な配列ではありません と出ました
cbind(c,c) + rbind(b,b)
>>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
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 " 正規表現が書けるという前提だけど、上に示すとおり格段に難しいわけではない。 従って「非常に面倒かどうか」に対する答えは「全く面倒ではありません。ほぼコピペの世界です。」だ。
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)としてまとめるにはどうすればよいでしょうか
>>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()
# 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)
>>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
大丈夫そうだ。
# ヒントだけのつもりだったのに。。。
>>521 その手があったか。
速度的には
rowSum()
が有利と思われる。
__ノ)-'´ ̄ ̄`ー- 、_ , '´ _. -‐'''"二ニニ=-`ヽ、 / /:::::; -‐''" `ーノ / /:::::/ \ / /::::::/ | | | | | |:::::/ / | | | | | | | |::/ / / | | || | | ,ハ .| ,ハ| | |/ / / /| ,ハノ| /|ノレ,ニ|ル' | | | / / レ',二、レ′ ,ィイ|゙/ 私は只の数ヲタなんかとは付き合わないわ。 . | \ ∠イ ,イイ| ,`-' | 頭が良くて数学が出来てかっこいい人。それが必要条件よ。 | l^,人| ` `-' ゝ | さらに Ann.of Math に論文書けば十分条件にもなるわよ。 | ` -'\ ー' 人 一番嫌いなのは論文数を増やすためにくだらない論文を書いて | /(l __/ ヽ、 良い論文の出版を遅らせるお馬鹿な人。 | (:::::`‐-、__ |::::`、 ヒニニヽ、 あなたの論文が Ann of Math に accept される確率は? | / `‐-、::::::::::`‐-、::::\ /,ニニ、\ それとも最近は Inv. Math. の方が上かしら? | |::::::::::::::::::|` -、:::::::,ヘ ̄|'、 ヒニ二、 \ . | /::::::::::::::::::|::::::::\/:::O`、::\ | '、 \ | /:::::::::::::::::::/:::::::::::::::::::::::::::::'、::::\ノ ヽ、 | | |:::::/:::::::::/:::::::::::::::::::::::::::::::::::'、',::::'、 /:\__/‐、 | |/:::::::::::/::::::::::::::::::::::::::::::::::O::| '、::| く::::::::::::: ̄| | /_..-'´ ̄`ー-、:::::::::::::::::::::::::::::::::::|/:/`‐'::\;;;;;;;_| | |/::::::::::::::::::::::\:::::::::::::::::::::::::::::|::/::::|::::/:::::::::::/
>>519-522 みなさんありがとうございます。
applyとrowsum()の両方を使えるようにします。
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::|::|::::::|:::::::::::::::/
すいません、ほんっとに初歩的な質問なんですが… Wikiをざっと見ても行列Tipsを検索しても見当たらないので質問させてください データフレームを数値行列に変換させるにはどうすればよいのでしょうか? 列成分をデータフレームから指定しても、as.matrixなどの変換をしても、 %*%の操作をすると数値行列にしてくださいと言われます とりあえずデータフレームの数値を使って行列計算をしたいので、誰かサクッと教えていただけると助かりますm(_ _) m
as.matrixの前後でstr()してみて。 多分factorになっていて数字ではないのではないかと思う。
そうでした そしてこれを数字にするには…
as.characterしてas.numericで数値化されるかどうか
>>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))’.
て書いてあるけどね。
>>532 そんなやり方があるのか、覚えられないなでも
>>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
前からこうだったっけ?
いつの間にか仕様が変わった?
あっ、ごめん。たまたまsample()の出力がわかりにくかっただけみたいだ。 as.numeric()だと「5」のところが「4」になっているから、 as.numeric(factorクラス)はやっぱり駄目だ。
もっと顕著に分かるようにしてみた。スレ汚しすまん。 > (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::|::|::::::|:::::::::::::::/
>>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 を使ってやりたいわけです。
>>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 環境で前処理してるけど、面倒臭いなあと思って
良い方法がないか尋ねた次第です。
あ、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::|::|::::::|:::::::::::::::/
頭の体操 > 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)))))]
>>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
>>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::|::|::::::|:::::::::::::::/
放置されて可哀想なので、私には答える能力がないけど、答えてみる。
>>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::|::|::::::|:::::::::::::::/
Rjpwikiの「Rだけでデータクリーニング」。 真摯な回答をする人が何人もいて、偉いな。
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 が便利なことに気付いた。
OpenOffice Calcのファイル.odsから直接Rのデーターフレームに 読み込む方法はないかなあ。 cvsに変換して読み込んでいるけど、ちょっとだけメンドイ。
>>576 サンクス!
CRAN関連ばかり探していたから引っかからなかった訳だ。
ダウンロードして見たが、CRANじゃないのでインストール方法が判らん。
初心者なんでもうちょっと勉強してみる。
>>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
>>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 が使えることが判ったので、 データー入力ツールはこれでいくことにします。
>>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")で無事読み込めました。
これでだいぶ助かります。
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を呼び出しても消えてくれません。 どうもこれが悪さをして意図した動作をしてくれ内容です。 対処方法ご存知のかたがいましたらご回答をお願いします。
>>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")
とすれば、入力待ちにならないのでは?
レスありがとうございます。 q()の引数にnoを追加しましたが、依然挙動不審です。 どうもコマンド引数に < script.r と指定したスクリプトを読み込めない場合があるようです。 なんこれ? な状況ですが。 最小単位の構成から実験してみます。
>>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 スクリプト 結果ファイル でいいよ。
★★★学歴格差:無意味 ★★★学力格差:尊重しろ ★★★能力格差:最大限利用せよ。 東大や京大にだって馬鹿は沢山居てるんだヨ。 学力格差と能力格差を認める理想社会を実現しろや。要するに: ★★★『馬鹿は無意味なので不必要だから、従って無能は静かにせよ。』★★★ っちゅうこっちゃ。低脳が騒ぐのはワシが許さんのや。 ちゃんと読め。 描
行列の作り方について質問です xという1×n個の配列があって、 yという行列の要素を y[i][j] = x[i]+x[j]としたいとき、 y行列を作る文はどのようにしたら良いのでしょうか
>>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
こういうことか?
>>593 さま
そうです!
ありがとうございます!
助かりました
>>594 助かったのなら何よりなんだけど、
宿題の類だったのなら、確認もせずに教育の邪魔をして教員に申し訳ない。
n=1,2,...,Nに対してP(n)のデータがあります このデータがどの確率分布か言い当てることはできますか
>>596 これまた宿題っぽい。
質問の動機や、動機を得るに至った背景を説明してもらえますか
>>597 R触ってみようと思って最初に思い浮かんだのがこれ
なんだけど探しても見つからないもんだからここで聞くことにした
>>598 ググると「コルモゴロフ-スミルノフ検定」というのが出てきた。
>>596 >>599 さんの答えだけだと、初心者はどうしてよいか分からないと思うので助言します。
> RSiteSearch("Kolmogorov-Smirnov")
以上。
601 :
132人目の素数さん :2012/08/08(水) 15:54:24.83
Mac版Rのデフォルトでのフォントって何でしたっけ? コマンド入力中にうっかりよくわからないキー押してしまったみたいでフォントが変わってしまって・・。
描
>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::|::|::::::|:::::::::::::::/
Rで、グラフとして描画されているデータをテキスト出力出来ますか? Rを使える人が私以外いないので、 Excelで配布しなければなりません。 今は描画前の関数データを張り付けていますが、 縦軸が変わってしまうので、グラフ描画からそのまま出力したいと思っています。
>>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
>>606 なるほど。データフレームにしてしまえばトラブルを解消できそうです。
今まで、xとyを別々に指定するような作業をしていたので気が付きませんでした。
ありがとうございました。
608 :
132人目の素数さん :2012/08/26(日) 09:50:32.98
教えてください。 開始日,数 1,5 2,2 3,4 4,8 …… 30,5 のような時系列データの信頼区間やピークを求めたいのですが、 解説サイトとかないでしょうか。
>>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で描画しようとするとメモリオーバーになってしまう なんかうまい方法はないものか
>>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でやりたいのです
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::|::|::::::|:::::::::::::::/
ggplotでも分割してできるでしょ。 それでも最後の描画の際にエラーになっちゃうかな?
>>616 はい。
ggplot2オブジェクトにそうさをくわえることはできますが、
プロットするさいにメモリオーバーエラーとなってしまいます。
(プロットせずにggsaveしようとしてもおなじです)
>>617 じゃあ、データを間引きするしか方法がないのでは?
そもそも100万レコードを視覚化するのに、
そのまま100万レコードが必要なのか?
100万からサンプリングして1万で図を描いても同じ図になる気がするぞ。
RにはReduce見たいな機能はないのかな
>>618 そういわれるとそうなのです
ただ、問題は
>>617 なので、なぜそうなるのか分かって、
そこだけ回避できるようになれればよいのですが・・・
そもそも全部描画できたとして、それは見るに耐えるものなのか? 例えば散布図なんかだと100万点どころか、1万点ですら多すぎて見づらいから、適切に間引くのが普通だ。
>>620 症状から考えて
ggplot2内部的に、
画面表示や画像ファイル保存などの描画時に、
データフレームをSVGみたいな描画用データに変換してから
その描画用データを参照して描画するんだと思う
だから、100万データを扱うことはできても、
グラフ描画(保存も含む)ができない。
しかも、データをどれだけ分割しようと
最終的に描画する際には、
そのグラフに使用する全描画用データを
同時にメモリに保持している必要があるから、
分割が意味をなさない。
だから、どうしても100万データ分使いたいんだったら、
メモリオーバーしない量のデータで一旦画像に保存して、
その画像同士を重ね合わせるみたいな方法をとるしかないかな。
画像処理の手間が必要になりますが。
あるいは、グラフ用のデータを
ダイナミックアロケーションできるような方法が
あるのか知りませんが、なければ作るとか……w
>>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
質問です。 任意の行列xを縦に複数回並べたいです。 こんな感じで書いてみたのですが、 forを使わず作れますか、 rep関数だけで実現できないですか? mat <- NULL x <- matrix(1:9, 3, 3) for(i in 1:5){ mat <- rbind(mat,x) } mat
>>626 >rep関数だけで実現できないですか?
できる
ヒント:
> i <- 5; paste("rbind(", paste(rep("x", i), collapse = ","), ")")
[1] "rbind( x,x,x,x,x )"
Reduce(rbind,lapply(1:5,function(x) matrix(1:9,3,3)))
>>628 do.call(rbind,lapply(1:5,function(x) matrix(1:9,3)))
5回じゃなくてもっと沢山くっつけるならdo.callのほうが速いみたい
Rってこれから主流になるんですか? ビッグデータ界隈でR!R!R!騒がしいです。
主流になるのではないかと言われているけど、必ずそうなるとは言い切れない。 でも使えておいて損はないと思うよ。
>>631 ビッグデータって何GBくらい?
素朴に考えると、Rらしいプログラムの書き方で処理するときには、
データを全てPCのメモリ上に読み込まなければならない。
しかし、オラクルに格納されたデータが、
PC1台のメモリにスッポリ収まるとはとうてい考えられない。
>>634 なるほど、オラクルサーバがR(互換)インタプリタを内蔵しているというわけですか。
Rが凄いというよりもORACLEの商魂が凄い。
そういえば、DBMSや統計ソフトのベンダーが
「顧客のニーズを読めてませんでした」とか言ったらギャグになる。
>>636 うちはOracleとRを使ってる。会社のデータはOracleで管理してるが、
それを可視化したり、対話的に解析するのにRが便利。
両者はODBCデータソース経由でシームレスに繋がる。
確かにSASはいいんだけどライセンス料金が高いので使える人が
限られてしまうが、Rならそういうこと気にせずに済むのがいい。
ただしRはサポートが課題になりやすいけどね。
もしOracleが有償でもRのサポート提供するなら、それを評価する
企業ユーザもいるんじゃないかな?
638 :
132人目の素数さん :2012/10/03(水) 23:16:24.69
Rで分析が済ませるデータ量の会社はそれでもいいけど、そんな会社はDB側もAccessで十分そうね。
Rでは社内で解析したものを環境丸ごと渡して 加工してもらうこともできるのかな?
640 :
132人目の素数さん :2012/10/03(水) 23:44:58.20
データサイエンティストとして経験を積むにはどの業界が良いのだろうか? 色々考えてみた。 SNS データ量が多い。分析前提でDBが設計してある。データドリブンが前提 銀行 顧客属性、預貯金データ保有、ローン情報 保険 顧客属性、病歴情報保有 クレジットカード 顧客属性、ローン情報、購買データ保有 SNSかクレジットカードだろうか。
Tポイントカードの新会社だろ、JK!w
POSデータがあれば、どこでもおk
Tポイントカード、POSデータの情報量なんてたかが知れてると思うな。
>>637 SASのライセンス料を気にしてOracleのライセンス料を気にしないのは謎だな
Oracleでまともにビッグデータを扱うと千万円の単位では済まないのに…
企業のことは分からないが、 PostgreSQL + Rという組み合わせは論外なのかな?
>>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みたいな処理の分散を自分で考えないといけない。
>>626 x <- matrix(1:9, 3)
x[rep(1:3,5),]
__ノ)-'´ ̄ ̄`ー- 、_ , '´ _. -‐'''"二ニニ=-`ヽ、 / /:::::; -‐''" `ーノ / /:::::/ \ / /::::::/ | | | | | |:::::/ / | | | | | | | |::/ / / | | || | | ,ハ .| ,ハ| | |/ / / /| ,ハノ| /|ノレ,ニ|ル' | | | / / レ',二、レ′ ,ィイ|゙/ 私は只の数ヲタなんかとは付き合わないわ。 . | \ ∠イ ,イイ| ,`-' | 頭が良くて数学が出来てかっこいい人。それが必要条件よ。 | 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
頭の古い人はいつでも置き去りにされる。
統計解析全体がオカルトだというとらえ方もあるけどね。 > 活用できる社員を育成するのに金が掛かるし、企業での課題だと思う。 亀の甲羅を火にあぶる司祭たち……
__ノ)-'´ ̄ ̄`ー- 、_ , '´ _. -‐'''"二ニニ=-`ヽ、 / /:::::; -‐''" `ーノ / /:::::/ \ / /::::::/ | | | | | |:::::/ / | | | | | | | |::/ / / | | || | | ,ハ .| ,ハ| | |/ / / /| ,ハノ| /|ノレ,ニ|ル' | | | / / レ',二、レ′ ,ィイ|゙/ 私は只の数ヲタなんかとは付き合わないわ。 . | \ ∠イ ,イイ| ,`-' | 頭が良くて数学が出来てかっこいい人。それが必要条件よ。 | l^,人| ` `-' ゝ | さらに Ann.of Math に論文書けば十分条件にもなるわよ。 | ` -'\ ー' 人 一番嫌いなのは論文数を増やすためにくだらない論文を書いて | /(l __/ ヽ、 良い論文の出版を遅らせるお馬鹿な人。 | (:::::`‐-、__ |::::`、 ヒニニヽ、 あなたの論文が Ann of Math に accept される確率は? | / `‐-、::::::::::`‐-、::::\ /,ニニ、\ それとも最近は Inv. Math. の方が上かしら? | |::::::::::::::::::|` -、:::::::,ヘ ̄|'、 ヒニ二、 \ . | /::::::::::::::::::|::::::::\/:::O`、::\ | '、 \ | /:::::::::::::::::::/:::::::::::::::::::::::::::::'、::::\ノ ヽ、 | | |:::::/:::::::::/:::::::::::::::::::::::::::::::::::'、',::::'、 /:\__/‐、 | |/:::::::::::/::::::::::::::::::::::::::::::::::O::| '、::| く::::::::::::: ̄| | /_..-'´ ̄`ー-、:::::::::::::::::::::::::::::::::::|/:/`‐'::\;;;;;;;_| | |/::::::::::::::::::::::\:::::::::::::::::::::::::::::|::/::::|::::/:::::::::::/ | /:::::::::::::::::::::::::::::::::|:::::::::::::::::::::O::|::|::::::|:::::::::::::::/
N行M列のXを 要素M個のリストにしたいです。 x <- matrix(1:9, 3) x_list <- list(x[,1], x[,2], x[,3]) as.list(x)でやると要素9になってしまいます。 要素M個にしたい場合は、どうすればいいですか?
できました! split(x, col(x)) >知っているといつか役に立つ(?)関数達 - RjpWiki (6) ベクトル、行列、データフレームをある性質で分割する、split(x,f)
↓これ、apply系の関数でうまくできないですか?教えてください。 x = matrix(1:12, 3, 4) y = c(2, 5, 10) x[1,] + y[1] x[2,] + y[2] x[3,] + y[1]
>>657 > x[1,] + y[1]
> x[2,] + y[2]
> x[3,] + y[1]
x[1:3,]+y[c(1,2,1)]
>>657 これでもできる。xに対して縦にしたベクトルを横に走らせながら足し算するみたいな意味。
sweep(x, 1, y[c(1,2,1)], "+")
__ノ)-'´ ̄ ̄`ー- 、_ , '´ _. -‐'''"二ニニ=-`ヽ、 / /:::::; -‐''" `ーノ / /:::::/ \ / /::::::/ | | | | | |:::::/ / | | | | | | | |::/ / / | | || | | ,ハ .| ,ハ| | |/ / / /| ,ハノ| /|ノレ,ニ|ル' | | | / / レ',二、レ′ ,ィイ|゙/ . | \ ∠イ ,イイ| ,`-' | | l^,人| ` `-' ゝ | このスレは馬と鹿と豚ばかりね。 | ` -'\ ー' 人 | /(l __/ ヽ、 | (:::::`‐-、__ |::::`、 ヒニニヽ、 | / `‐-、::::::::::`‐-、::::\ /,ニニ、\ | |::::::::::::::::::|` -、:::::::,ヘ ̄|'、 ヒニ二、 \ . | /::::::::::::::::::|::::::::\/:::O`、::\ | '、 \ | /:::::::::::::::::::/:::::::::::::::::::::::::::::'、::::\ノ ヽ、 | | |:::::/:::::::::/:::::::::::::::::::::::::::::::::::'、',::::'、 /:\__/‐、 | |/:::::::::::/::::::::::::::::::::::::::::::::::O::| '、::| く::::::::::::: ̄| | /_..-'´ ̄`ー-、:::::::::::::::::::::::::::::::::::|/:/`‐'::\;;;;;;;_| | |/::::::::::::::::::::::\:::::::::::::::::::::::::::::|::/::::|::::/:::::::::::/ | /:::::::::::::::::::::::::::::::::|:::::::::::::::::::::O::|::|::::::|:::::::::::::::/
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()で適当に赤の横破線を引いてくれ
初心者ですがロジットモデルを作る際に Lapack routine dgesv:システムは正確に特異です という意味不明なメッセージが... 変数ごとの尺度が違いすぎると発生するってことで一部に1/100したりしてみたけど 変わらず出てしまう...「そのエラー文こんな場合に出てくるでー」みたいなのあれば教えて頂けるとありがたいです.
ロジットモデルが何か知らないけど、 エラー文でググると、 >分散共分散行列の行列式が正定値では無いため
>>667 ありがとうございます!
分散共分散行列、正定値か...初めての単語です.
調べてみようっと
>>666 singularって単数と思っていたが、数学では「特異」なんだな。
勉強になった。
>>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とあわせて使えませんか?
>>671 それは質問かい?
それとも上のどこかの書き込みの対する助言かい?
すみません、質問です id time sex 1 13 male 2 24 female ・・・ てな感じのデータ(population)を、timeでヒストグラムを書いた時にsexで色分けしたいのですが 基本グラフィックを使った方法で何か良いのは無いでしょうか? ちなみにggplot2だと以下のコマンドで出来ますが、基本グラフィックで書く必要があります ggplot(population, aes(time, fill=sex))+geom_histogram()
>>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))])
参考まで。
>>675 なるほど、histはグループ分けが出来ないのですね・・・
アドバイスに従って棒グラフで作成してみます
回答ありがとうございました
リストの各要素を変数に代入したいです。 今は↓こんな感じでやってるのですが、要素数が増えると面倒で、 良いやり方があれば教えてください。 m = list(1, 2, 3, 4) a = m[[1]] b = m[[2]] c = m[[3]] d = m[[4]]
lapply(1:4, function(k) assign(letters[k], m[[k]], envir = .GlobalEnv)) うーん、あんま短くないか。
>>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になるのかなとと思って。
データフレームがあって、A列にコード、B列にファクター値が入っております。 このデータフレームをファクター値によって5分割したいのですが、 ループを使わない簡単な方法ありますでしょうか? 現在はquantile関数とforループを併用しております。 よろしくお願いいたします。
>>681 >ファクター値
どういう意味?
因子型変数が内部で保持している実体の整数型の値のこと?
例を示してくれないと、その説明ではどうしたいのか分からない。
>>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)という関数を用いて分割している次第です。
よろしくお願いいたします。
>>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の大きさで任意の分位に分割したいのです。。。。
>>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, ]})
改行、空白がなくて読みにくコードを 見やすく自動で整形する方法ってありますか? 他の言語だと整形ツールがあるんだけど Rにもあるのかな
>>689 外部ツールとしてはないけど、そういう関数もある(名前は忘れた)。
691 :
681 :2012/12/23(日) 01:16:13.76
>>687 ありがとうございます。
分位は等分位です。
quantileで分位点を求めて、教えていただいた方法で無事いけました。
質問の仕方が悪かったようで申し訳ありませんでした。
以後気を付けたいと思います。
本当にありがとうございました
693 :
令嬢 :2012/12/23(日) 23:13:41.87
__ノ)-'´ ̄ ̄`ー- 、_ , '´ _. -‐'''"二ニニ=-`ヽ、 / /:::::; -‐''" `ーノ / /:::::/ \ / /::::::/ | | | | | |:::::/ / | | | | | | | |::/ / / | | || | | ,ハ .| ,ハ| | |/ / / /| ,ハノ| /|ノレ,ニ|ル' | | | / / レ',二、レ′ ,ィイ|゙/ 私は只の数ヲタなんかとは付き合わないわ。 . | \ ∠イ ,イイ| ,`-' | 頭が良くて数学が出来てかっこいい人。それが必要条件よ。 | l^,人| ` `-' ゝ | さらに Ann.of Math に論文書けば十分条件にもなるわよ。 | ` -'\ ー' 人 一番嫌いなのは論文数を増やすためにくだらない論文を書いて | /(l __/ ヽ、 良い論文の出版を遅らせるお馬鹿な人。 | (:::::`‐-、__ |::::`、 ヒニニヽ、 あなたの論文が Ann of Math に accept される確率は? | / `‐-、::::::::::`‐-、::::\ /,ニニ、\ それとも最近は Inv. Math. の方が上かしら? | |::::::::::::::::::|` -、:::::::,ヘ ̄|'、 ヒニ二、 \ . | /::::::::::::::::::|::::::::\/:::O`、::\ | '、 \ | /:::::::::::::::::::/:::::::::::::::::::::::::::::'、::::\ノ ヽ、 | | |:::::/:::::::::/:::::::::::::::::::::::::::::::::::'、',::::'、 /:\__/‐、 | |/:::::::::::/::::::::::::::::::::::::::::::::::O::| '、::| く::::::::::::: ̄| | /_..-'´ ̄`ー-、:::::::::::::::::::::::::::::::::::|/:/`‐'::\;;;;;;;_| | |/::::::::::::::::::::::\:::::::::::::::::::::::::::::|::/::::|::::/:::::::::::/ | /:::::::::::::::::::::::::::::::::|:::::::::::::::::::::O::|::|::::::|:::::::::::::::/
各位に使用できる数字(または文字)に制限がある n桁の整数(文字列)を生成したい。 1桁目: 1, 2 2桁目: 4, 5, 6 3桁目: 7, 8 この場合だと 2*3*2 = 12 通りの整数が作れます。 forを3重にすればできるのですが、このやり方は避けたい。 n桁になっても対応できるコードを書きたいです。 いいやり方、教えてください。
>>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桁でも)同じ。
前者です。 [,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重にすればできるのですが、
この具体的なコードを書くとか。抽象的に説明すると、解釈の余地に幅が生まれる。
>>697 親切にありがとうございます。精進します!
699 :
695 :2012/12/25(火) 21:31:46.70
あぁ、すまない。 n桁の整数は連結させるのではなく、 桁をばらばらにして行列にしたかったのか。 それなら話はもっと簡単だ。 pasteの処理をやめれば良い
expand.grid(a) (function() as.matrix((expand.grid(a)->x)[do.call(order, x),]))()
>>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::|::|::::::|:::::::::::::::/
>>701 revの二重使いは柔軟な思考ですね。参考になりました。
狢 >増田哲也こそ笑い者。 >俺が逮捕されて懲戒免職させる日本こそ沈めって、一発逆転をねらっている愚民そのもの。 >
データフレームにあるQ01, Q02, Q03, Q04...というような連番の変数って、分析の際にまとめて指定することはできないのでしょうか。 SASでQ01-Q50などとやるようなことをしたいのですが、方法がわかりません。ご存知の方、お教えください。 50項目で主成分分析をしようなどという場合を考えると、気が遠くなります。
706 :
132人目の素数さん :2012/12/30(日) 07:20:47.80
>>705 outcome ~ .
って指定するとすべての変数が入る
>>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
>>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クラスを吐く。
それだけの話。
714 :
132人目の素数さん :2012/12/30(日) 23:08:32.14
>>712 さん
>>711 です。回答ありがとうございます。
実行してみたところおっしゃたように"list"と出力されました。
ということはboosting.cvで得られた変数(data.adaCv)を用いての
predictはできないということでしょうか?
また、もしできるのであればそのコマンドと使用例を教えていただきたいです。
宜しくお願いします。
__ノ)-'´ ̄ ̄`ー- 、_ , '´ _. -‐'''"二ニニ=-`ヽ、 / /:::::; -‐''" `ーノ / /:::::/ \ / /::::::/ | | | | | |:::::/ / | | | | | | | |::/ / / | | || | | ,ハ .| ,ハ| | |/ / / /| ,ハノ| /|ノレ,ニ|ル' | | | / / レ',二、レ′ ,ィイ|゙/ . | \ ∠イ ,イイ| ,`-' | | l^,人| ` `-' ゝ | このスレには馬と鹿と豚さんしかいないのね。 | ` -'\ ー' 人 | /(l __/ ヽ、 | (:::::`‐-、__ |::::`、 ヒニニヽ、 | / `‐-、::::::::::`‐-、::::\ /,ニニ、\ | |::::::::::::::::::|` -、:::::::,ヘ ̄|'、 ヒニ二、 \ . | /::::::::::::::::::|::::::::\/:::O`、::\ | '、 \ | /:::::::::::::::::::/:::::::::::::::::::::::::::::'、::::\ノ ヽ、 | | |:::::/:::::::::/:::::::::::::::::::::::::::::::::::'、',::::'、 /:\__/‐、 | |/:::::::::::/::::::::::::::::::::::::::::::::::O::| '、::| く::::::::::::: ̄| | /_..-'´ ̄`ー-、:::::::::::::::::::::::::::::::::::|/:/`‐'::\;;;;;;;_| | |/::::::::::::::::::::::\:::::::::::::::::::::::::::::|::/::::|::::/:::::::::::/ | /:::::::::::::::::::::::::::::::::|:::::::::::::::::::::O::|::|::::::|:::::::::::::::/
ビギニングス to Rって読んだけど プログラミング言語の解説というかRをアプリケーションとしてみた解説って感じで 言語的なことはほとんど勉強になりませんでしたね。 やっぱ俺はS言語の本読むべきでしたね。
>>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()をコピーして編集すればよい。
そうじゃないなら、何をしたいのか、もっとはっきり伝えること。
>>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を求める方法がお分かりの方、いらっしゃいましたらお教えください。
>>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
__ノ)-'´ ̄ ̄`ー- 、_ , '´ _. -‐'''"二ニニ=-`ヽ、 / /:::::; -‐''" `ーノ / /:::::/ \ / /::::::/ | | | | | |:::::/ / | | | | | | | |::/ / / | | || | | ,ハ .| ,ハ| | |/ / / /| ,ハノ| /|ノレ,ニ|ル' | | | / / レ',二、レ′ ,ィイ|゙/ 私は只の数ヲタなんかとは付き合わないわ。 . | \ ∠イ ,イイ| ,`-' | 頭が良くて数学が出来てかっこいい人。それが必要条件よ。 | l^,人| ` `-' ゝ | さらに Ann.of Math に論文書けば十分条件にもなるわよ。 | ` -'\ ー' 人 一番嫌いなのは論文数を増やすためにくだらない論文を書いて | /(l __/ ヽ、 良い論文の出版を遅らせるお馬鹿な人。 | (:::::`‐-、__ |::::`、 ヒニニヽ、 あなたの論文が Ann of Math に accept される確率は? | / `‐-、::::::::::`‐-、::::\ /,ニニ、\ それとも最近は Inv. Math. の方が上かしら? | |::::::::::::::::::|` -、:::::::,ヘ ̄|'、 ヒニ二、 \ . | /::::::::::::::::::|::::::::\/:::O`、::\ | '、 \ | /:::::::::::::::::::/:::::::::::::::::::::::::::::'、::::\ノ ヽ、 | | |:::::/:::::::::/:::::::::::::::::::::::::::::::::::'、',::::'、 /:\__/‐、 | |/:::::::::::/::::::::::::::::::::::::::::::::::O::| '、::| く::::::::::::: ̄| | /_..-'´ ̄`ー-、:::::::::::::::::::::::::::::::::::|/:/`‐'::\;;;;;;;_| | |/::::::::::::::::::::::\:::::::::::::::::::::::::::::|::/::::|::::/:::::::::::/ | /:::::::::::::::::::::::::::::::::|:::::::::::::::::::::O::|::|::::::|:::::::::::::::/
723 :
132人目の素数さん :2013/01/05(土) 16:46:53.71
>721 ありがとうございました。参考になりました。
__ノ)-'´ ̄ ̄`ー- 、_ , '´ _. -‐'''"二ニニ=-`ヽ、 / /:::::; -‐''" `ーノ / /:::::/ \ / /::::::/ | | | | | |:::::/ / | | | | | | | |::/ / / | | || | | ,ハ .| ,ハ| | |/ / / /| ,ハノ| /|ノレ,ニ|ル' | | | / / レ',二、レ′ ,ィイ|゙/ . | \ ∠イ ,イイ| ,`-' | | l^,人| ` `-' ゝ | このスレには馬と鹿と豚さんしかいないのね。 | ` -'\ ー' 人 | /(l __/ ヽ、 | (:::::`‐-、__ |::::`、 ヒニニヽ、 | / `‐-、::::::::::`‐-、::::\ /,ニニ、\ | |::::::::::::::::::|` -、:::::::,ヘ ̄|'、 ヒニ二、 \ . | /::::::::::::::::::|::::::::\/:::O`、::\ | '、 \ | /:::::::::::::::::::/:::::::::::::::::::::::::::::'、::::\ノ ヽ、 | | |:::::/:::::::::/:::::::::::::::::::::::::::::::::::'、',::::'、 /:\__/‐、 | |/:::::::::::/::::::::::::::::::::::::::::::::::O::| '、::| く::::::::::::: ̄| | /_..-'´ ̄`ー-、:::::::::::::::::::::::::::::::::::|/:/`‐'::\;;;;;;;_| | |/::::::::::::::::::::::\:::::::::::::::::::::::::::::|::/::::|::::/:::::::::::/ | /:::::::::::::::::::::::::::::::::|:::::::::::::::::::::O::|::|::::::|:::::::::::::::/
>>716 いまさらだけどビギニングス ガイド イン Rのミススペルな。
またミスすぺるブチこみました。 正確には ビギニングス ガイド イン R でした。
以下のようなデータフレームを仮定 コード 日付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 このように取得したい場合どのような操作をすればよいでしょうか? 実際には数千のコードがあるのでループで一行ずつ回すのはあまり現実的ではありません。 よろしくお願いします
>>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
正規分布の乱数を作って、確率密度(面積)の合計が1になるのを 確認したいのですが、↓だと何故か2になってしまいます。 どこがダメなんだしょう? x = rnorm(500) hist(x, prob=T) sum(hist(x, prob=T)$density)
>>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
>>731 わからないよ (´・ω・`)
sum(hist(x, prob=T)$density)
と
sum(hist(x, prob=T)$count/500)
は同じになると思ったんだけど、違うってことですかね??
>>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))
>>733 理解できました!
ありがとうございます!
質問失礼します
言語を英語にすると、立ち上げた際のメッセージなどはきちんと英語になるのですが、
cor.test()などの関数を実行すると出力が日本語メッセージでかえってきます
日本語のwinOSでRの返答を完全に英語にする方法をどなたかご存知ないでしょうか?
ちなみに↓サイトの起動アイコンカスタマイズの方法で英語化しています
ttp://minato.sip21c.org/swtips/R.html
737 :
736 :2013/01/16(水) 12:54:26.20
>>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 ヒントだけでも結構ですのでよろしくお願いいたします。
mac版のRでの質問、失礼します。
ローカルに保存したCSVファイルではなく、直接ダウンロード、読込みをするファイルの文字化けを解消したいのですが、
エンコードを変える記述では上手くいきません。
ご教示いただけないでしょうか?
例)
url.data <- "
http://maxis.muam.jp/e/fund/download/ "
eMAXIS <- read.table(url.data, sep=",", stringsAsFactor = FALSE)
>>740 fileEncoding = "SJIS"
オプションとかではダメってこと?
>>739 plyrにあるddply()でIDで分割してwhich.max()で日付が最大のところのindexをとって、その場所の数字を取ればいいかな。
NAの処理を条件分岐を使わないでやるなら、ID日付でソートしたうえで、ddply()の中でzooのna.locf()を使えばいいか?
結構重くなってしまうかも。
__ノ)-'´ ̄ ̄`ー- 、_ , '´ _. -‐'''"二ニニ=-`ヽ、 / /:::::; -‐''" `ーノ / /:::::/ \ / /::::::/ | | | | | |:::::/ / | | | | | | | |::/ / / | | || | | ,ハ .| ,ハ| | |/ / / /| ,ハノ| /|ノレ,ニ|ル' | | | / / レ',二、レ′ ,ィイ|゙/ . | \ ∠イ ,イイ| ,`-' | | l^,人| ` `-' ゝ | このスレは馬と鹿と豚さんばかりね。 | ` -'\ ー' 人 | /(l __/ ヽ、 | (:::::`‐-、__ |::::`、 ヒニニヽ、 | / `‐-、::::::::::`‐-、::::\ /,ニニ、\ | |::::::::::::::::::|` -、:::::::,ヘ ̄|'、 ヒニ二、 \ . | /::::::::::::::::::|::::::::\/:::O`、::\ | '、 \ | /:::::::::::::::::::/:::::::::::::::::::::::::::::'、::::\ノ ヽ、 | | |:::::/:::::::::/:::::::::::::::::::::::::::::::::::'、',::::'、 /:\__/‐、 | |/:::::::::::/::::::::::::::::::::::::::::::::::O::| '、::| く::::::::::::: ̄| | /_..-'´ ̄`ー-、:::::::::::::::::::::::::::::::::::|/:/`‐'::\;;;;;;;_| | |/::::::::::::::::::::::\:::::::::::::::::::::::::::::|::/::::|::::/:::::::::::/ | /:::::::::::::::::::::::::::::::::|:::::::::::::::::::::O::|::|::::::|:::::::::::::::/
>>742 ありがとうございます。
ddplyで無事いけました。
20万行程度のデータフレームですが、数秒で完了するので問題ありませんでした。
>>741 すみません。勘違いしてました。
オプションでいけました。
ご指摘ありがとうございます。
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自体にはパスが通るので合ってるはずです。どこが悪いんでしょうか?
748 :
746 :2013/01/27(日) 23:38:33.32
ごめんなさい。自己解決しました やっぱりMYSQL_HOMEの値がおかしかったようです。
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
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文が問題なのだと思っているのですがどう直せばよいものでしょうか
>>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
とかを使うのは嫌いなの?
すみません 単純に使い方が分からず力技でどうにかやってみた感じだったのでこういう形になっていました 自分の力が及ばないせいでデータファイルを作るとき時刻データの前にどうしても消えない半角スペースがあって それで6番目と7番目ではなく7番目8番目になっていますorz それと > as.numeric(as.POSIXlt("2012/12/05 20:30:00")) [1] 1354707000 これをみて目からうろこでした、自分のやってたことの馬鹿さ加減にあきれました 御助言ありがとうございました
>>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"
これでよいのでは?
オプションなしでは、前後の空白を取り除くから、前だけならそのように指定する。
なるほど、Rの方でtrimするって手もありましたね なにからなにまでありがとうございます
>>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行目にあった文字列前の空白を消せる。
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) : < 因子に対しては無意味です というエラーが出てうまくいきません
どこが問題でしょうか?
データフレーム訂正します 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 複数カラムをキーにしたソートなんて考えたことがなかった。
いったいどんなときに必要になるの?
# 表計算ソフトのように「見せる」目的なら理解できるけど。
順位相関などを見るときにそういう処理をする可能性はあると思う
再び質問失礼します a,b 3,5 2,3 2,2 2,1 1,3 1,1 a列は必ず降順になっているときに b列が降順になっていないとき この例では5行目1,3ですが これを削除したいのですが 関数化して自動で判別して削除したいです どのようにしたら良いでしょうか
複数の列でのソートは doByパッケージのorderBy()が使いやすい。
>>761 pmax()というのを初めて知った。
bの列を一行下げて頭にInfをいれたものをcとしてデータフレームにいれる、bとcに対してpmax()して、結果をdとしてデータフレームにいれる。dがbと一致しているところを落とす。
でどうだろう?
764 :
761 :2013/02/02(土) 13:18:11.28
>>763 御助言ありがとうございます
しかし当方最近Rを使いだしたもので何をどうすればいいのか分かりません・・・
あつかましいのですが具体的にどんな感じに書けばいいでしょうか
>>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,]
を想定。関数化されてないけど。もっと大きい例で動くはチェックしていない。
>>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
>>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になるのが、終了条件。
cummin を使えばいいか?
これなら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,]
r-base-core がみつからないとか言われるでござる…
ビッグデータに関する本で 膨大なデータを統計処理して活用するために RやJavaのhadoopが使える人材が求められてるって書いてあったな
すみません、グラフで箱の左下をゼロで直交するようにしたいのですが (軸オンリーではなく箱で書きたいのです)、
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つ存在し妙な読み込みがされていたのが原因でした
アドバイスありがとうございました
>>772 > plot.new()
> box()
とすると、左下に原点が来るけど。
> points(0, 0)
>>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
__ノ)-'´ ̄ ̄`ー- 、_ , '´ _. -‐'''"二ニニ=-`ヽ、 / /:::::; -‐''" `ーノ / /:::::/ \ / /::::::/ | | | | | |:::::/ / | | | | | | | |::/ / / | | || | | ,ハ .| ,ハ| | |/ / / /| ,ハノ| /|ノレ,ニ|ル' | | | / / レ',二、レ′ ,ィイ|゙/ 私は只の数ヲタなんかとは付き合わないわ。 . | \ ∠イ ,イイ| ,`-' | 頭が良くて数学が出来てかっこいい人。それが必要条件よ。 | l^,人| ` `-' ゝ | さらに Ann.of Math に論文書けば十分条件にもなるわよ。 | ` -'\ ー' 人 一番嫌いなのは論文数を増やすためにくだらない論文を書いて | /(l __/ ヽ、 良い論文の出版を遅らせるお馬鹿な人。 | (:::::`‐-、__ |::::`、 ヒニニヽ、 あなたの論文が Ann of Math に accept される確率は? | / `‐-、::::::::::`‐-、::::\ /,ニニ、\ それとも最近は Inv. Math. の方が上かしら? | |::::::::::::::::::|` -、:::::::,ヘ ̄|'、 ヒニ二、 \ . | /::::::::::::::::::|::::::::\/:::O`、::\ | '、 \ | /:::::::::::::::::::/:::::::::::::::::::::::::::::'、::::\ノ ヽ、 | | |:::::/:::::::::/:::::::::::::::::::::::::::::::::::'、',::::'、 /:\__/‐、 | |/:::::::::::/::::::::::::::::::::::::::::::::::O::| '、::| く::::::::::::: ̄| | /_..-'´ ̄`ー-、:::::::::::::::::::::::::::::::::::|/:/`‐'::\;;;;;;;_| | |/::::::::::::::::::::::\:::::::::::::::::::::::::::::|::/::::|::::/:::::::::::/ | /:::::::::::::::::::::::::::::::::|:::::::::::::::::::::O::|::|::::::|:::::::::::::::/
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))
>>778 よく分からないが、
> a <- barplot(1:10); points(a, 1:10, col = 2)
こうしたいの?
>>779 縦軸の0の位置が、barplot と plot で違うんで揃えたいんです。
>>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()を使う。
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)
結局、Rで中程度規模のデータを高速に集計できるパッケージ(関数)ってなんなの? plyr : 中規模以上のデータで遅すぎ(idataframe使ってもそこまで変わらず) aggregate : 普通 sqldf : まとも、でもRっぽくない。 他にお勧めがあったら教えて
教えて下さい。 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にしたのですが、 どうすればいいのでしょうか?
>>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?してやりたいです。
>>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で、日付時間っぽいな。
これ以上は分からないので、識者の方にパス。
>>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形式でファイルにおとしたいのですが、、
>>789 さん
返事が入れ違いになりました。
"abc"ではなく、日付でした。
間違えてました。
データの補間について質問させてください 下記のような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 単純にコピーするだけでは駄目なの?
> 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] の長さと同じでなければなりません ドキュメントを読みつくしたつもりなのですが、バグとしか思えません。 詳しい方、このバグは既知のものなのでしょうか?それとも回避方法があるのでしょうか?
>>798 その作者のTorgoさんに聞く方がここで聞くよりも早いと思うぞ
狢 > 1 :西独逸φ ★:2007/08/05(日) 05:47:55 ID:???0 >徳島県警阿南署などは5日未明、東京都足立区千住寿町、 >筑波大学准教授、増田哲也容疑者(50)を >県迷惑行為防止条例違反(痴漢行為)容疑で逮捕した。 > >調べでは、増田容疑者は、4日午後4時20分ごろから約50分にわたり、 >JR牟岐線の列車内で、県内の >専門学校生の女性(21)の胸や太ももなどを触った疑い。調べに対し、 >「夏休み期間に、講演活動を兼ね >て旅行していた。好みの女性だったのでムラムラした」と話しているという。 >
R 3.0.0 キタ━━━━(゚∀゚)━━━━!!
3.0.0に上げたら、保存されたワークスペースに非互換部分が含まれていたみたいで、 R (正確にはR.app GUI)が起動しなくなったw コンソールの方は使えたので、すぐに対処できたけど、R初心者は要注意だな。 バージョン上げたら、ライブラリのコンパイルをやり直さなくてはいけないので面倒だよな。 configureにオプションを渡さないといけないのもあるし。 > nrow(library()$results) [1] 267 みんなは、いくつぐらいなの?
rstudioの対応待ち
メインPCのlibraryは262 3.1とか3.0.2が出るまでとりあえず様子見だな
> nrow(library()$results) [1] 2961 Rcmdrのせいなのか随分と多い。 自分の環境はR version 2.13.0 (2011-04-13)
背景色とフォントカラーを変えたいんだけど、etc\Rconsoleを設定しても全然反映されない font = TT MS Gothic points = 20 background = black normaltext = white usertext = LightGreen highlight = Red style = normal # Style can be normal, bold, italic 何が悪いんだろう
回答になっていなくて申し訳ないのだが、R以外のエディタを使うのが良いかと デフォルトエディタらしいといえばそうなのだが、Rエディタはあまりに低機能過ぎる モニタが大きい人ならRstudio、ノーパソ派ならNotepad++ & NppToR、あたりが個人的おすすめ
>>806 は?ターミナルエミュレータの設定にRは関係ないだろ、と思ったら、
> font = TT MS Gothic
Windowsな方でしたか。
私も回答になっていなくて申し訳ないけど、
背景やフォントカラー、構文色強調を自由に設定できるEmacs+ESSがお薦め。
Emacsは初期学習コストがかかるが、超絶便利。
初めてESSを使ったときは、あまりの便利さに気を失いそうになった。
>>803 3.0.0で使えているみたいだけど。
RStudio Ver.0.97.336
RStudioで普通に問題なく使えてる。一応2.15.3も残してはあるが3.0.0 インスコした後まだ立ち上げる機会がない。
なんか、ノートン先生に怒られた…(;・∀・) 絶対パス: c:\program files\r\r-3.0.0\bin\i386\r.dll ____________________________ ____________________________ コンピュータの評価日 2013/04/05 12:12:11 前回の使用 利用不能 起動項目 いいえ 起動済み はい ____________________________ ____________________________ 少数のユーザー Norton コミュニティの 50 人未満のユーザーがこのファイルを使いました。 ____________________________ ごく新しい このファイルの更新日はここ 1 週間以内です。 ____________________________ 高 これは危険度が高いファイルです。 ____________________________ 脅威の詳細 SONAR 保護はコンピュータ上で疑わしいプログラムの活動を監視します。 ____________________________ 元ファイル: r.dll
怪しいサイトから拾い食いしただろ
よほどヘビーにR使う人でなければ、Emacs系はコスト>利益 「 (略) 作業効率が上がる(ように錯覚でき)ます. (RjpWikiより)」
>>813 逆。試しに使ってみるとか、RCommanderしか使わないとか、
年に数回だけ使うとかそんなレベルなら、
コンソール/RCommanderでもよいが、
ある程度使うなら、試行錯誤するためにも、エディタは必須。
常用しているテキストエディがなければ、微妙だけど。
3.0.0は「だいぶ2系が落ちついたから番号あげてみた」程度だって公式では言ってたけど、非互換なところたくさんあるの?
>>815 過去にsave.image()しまくった資産があるのでなければ、
基本的に非互換なんて気にしなくてもよいと思うよ。
でも、Ubuntuのリポジトリは2.15.3のままだな。
単に遅れているだけか、何か理由があるのかな。
Debianの方は3.0.0が来た。
ベン図を描きたいのだけど、お勧めある? 因みに2.15だとgplotsが無いみたいでvenn()は使えないみたいでした。
>>817 > RSiteSearch("Venn")
でヒットした関数やパッケージは試した上での質問かどうかで回答は変わるけど、
VennDiagramパッケージのような専用パッケージはどう?
ちょっと教えてくれろ。 x <- rnorm(100);hist(x, prob=T, ann=F) ;par(new=T) ;plot(density(x),col="red") こんな感じの正規分布っぽいグラフでXの範囲指定して、 Y軸0から確率密度の赤線までの面積を表したいんだけど、 ここを色づけする方法が判らない、 例えばXが1~2の間を塗るとき具体的にどんなコードになるか教えて下さい。
ペイント使って塗ったらいいじゃん
>>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)))
ここがRの本スレか。 R自体統計プログラムなのかグラフィックソフトウェアなのかよくわからんけど本スレは数学板なのね。 数学嫌いだわ…。Rまで嫌いになりそう
むしろ数学界隈以外での R の用途が気になるな。なんでもできるっちゃそうなんだけど。
>>825 学生時代数学にはつらい思いでがあって…
数学的能力が全くダメでもいろんな運の巡り合わせでRと向き合わなきゃいけなくなる人もいますんでご容赦を
統計学もグラフィックスも数学じゃないよ。数学者はそんなもの相手にせんわ
828 :
132人目の素数さん :2013/04/14(日) 07:37:32.81
カール・フリードリヒ・ガウス...
あぼーん
あるデータをplot(density(data))でグラフ化してます。 任意のX区間を指定して面積を求めようとしてるのですが、やり方を教えて下さい。 また、正規分布だと、dnorm(c(0,0.2,0.4,0.6,0.8,1))とやればX値に対応したY値がでるみたいですが、 任意のデータをプロットしている場合、X値からY値を取り出すにはどうやればいいのでしょうか?
規制されて書き込めなかった。
普通はpolygon()を使う
>>820 > x <- rnorm(100);hist(x, prob=T, ann=F)
> a <- density(x)
> polygon(a$x,a$y, col="red")
>>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
>>825 統計的裏付けのない実感で申し訳ないが、
確かに、10年くらい前は数学・数理統計の関係者がほとんどを占めていたと思う。
しかし、ここ5年ほどで急速に、Rをプログラミング言語としてとらえるIT関係のユーザが増えたし、
心理学研究や医学研究にも地道に普及している。
Rユーザ会の出席者を見渡しても、数学関係者はマイノリティになりつつあると思う。
こんな記事もある
「次に来る」プログラミング言語を占ってみる
ttp://www.atmarkit.co.jp/ait/spv/1201/17/news133_2.html 今後の動向を予感させるもう1つの動きは、プログラミング言語「R」が2012年1月のTIOBE PCIの19位に入ったことだ。
(中略)Rが話題になり始めた背景には、最近注目を浴びているある種のコンピュータ技術がある。
大量のデータを効率良く処理する技術だ。「ビッグデータ」という言葉を耳にした方は多いと思う。(中略)
RはGoogleが社内のデータ解析に活用しているなど、ビッグデータを扱う企業において重要なプログラミング言語となっており、今後広い範囲で話題になる可能性がある。
後藤大地ってどんなやつかと思ったら小物もいいとこじゃん。聞く耳もつに 値しないね。
ちゃんと取材にいってる人だと思うが、どちらかというとPCハードの記者さんだよね。 事実として、企業のコミットが増えてlinuxみたいにRもコミッター増えてんじゃないの?
ver3 変更点なにー?
>>825 競馬とオートレースに使ってる。
仕事では使わないなぁ。部下は使ってるみたいでレポート見るだけだね。
>>840 オートレースは確実に儲かるよ。ルールやら競技特性やら勉強してパラメータ決めるまで大変だったけど。
競馬はまだキツい。
数値で決まるってことは性能の差に技量は勝てないのね
なんか捕まってたよねw >競馬で30億円配当に巨額の追徴課税の件
>>842 技能を分解して数値化してます。
>>843 派手にやらなきゃ大丈夫。あれがバレたきっかけは株らしいし。
ぐぐったら株や投資信託からばれたって書いてあった 知らんかったわ あと技能を分解ってすげーな 何を基準に分けてんのか興味あるw
>>845 あまり掘り下げるとスレ違いになるのですいません。統計の理屈はギャンブル特性の解析よりある意味簡単ですね。
計算の最後にはsvm使ってますよ。
競馬にはやはりmatlabでしょう。
このスレの住人はmatlabを買えない貧乏人ばかりだからそんなことを書き込むと いぢめられるよ?
matlabの学生版は99ドルで破格
>>848 自腹で買う奴いるのか?
会社や学校とか所属組織のカネで買うもんじゃないの?
matlabってどんな感じ? 処理速度が若干速くて、PC(or 統計)オンチでもある程度使えて、 本体と拡張パックで2度金が取られる、程度のイメージしかなかったんだけど、 話聞いてるとやっぱどっか利点があるのかな、使ったことないので興味がある
matlabの互換はRじゃなくて、Octaveでそ?
互換かどうかの話じゃないんだぜ、KY
854 :
132人目の素数さん :2013/04/26(金) 09:27:01.34
ていうか、Poor man's 統計ソフトのスレなのに、何でmatlabの話をするの? 舐めているの?
R使いの貧乏人を尻目にmatlab使うのも乙なもんですわ、かっかっかっ
859 :
858 :2013/04/27(土) 00:26:39.70
億単位で答えてくれ。 別に証明はしなくていい。もし、俺の資産規模を知りたければお前の証明からだぜ。 それが嫌ならうせろ。目障りだ。分かったな小坊主。
持ち家(と言ってもマンションだが)くらいしか資産はないので0.5億くらいかな。 ココ数年でだいぶ目減りしたよ。
861 :
858 :2013/04/27(土) 01:07:24.23
>>860 そうか、年齢にもよるけど結構あるね。俺は流動資産だけで3億ぐらい。
レバレッジをかけているから、売買はかなりの規模になるけどヘッジもかけているから3億を割ることはない。
matlabもいいとは思うけど、Rで何年もかけて作ってきた予測の数々を移植する気になれない。
matlabのいいところがあるなら紹介して下さいな。
成金を競うスレはここでつか?
売買とかヘッジとか文系は下品だねェ 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関数を利用すればうまくいきそうなのですが、
うまくいきませんでした)。何卒よろしくお願い申し上げます。
What nationality are you?
How much do you pay?
あぼーん
ところでこいつはなんなんだ
度々見かけるがどこの誰なのかわからない
> 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
市販の統計ソフトよりこっちのほうが優れてるの?
貧乏人なので知りません。すみません。
あぼーん
数学のアナルが好きなのか
emacs+ESSで使ってる人、 Rguiだとescで計算中のR止めたり出来るけど、ESSだとどうすればいいのか教えてくれ。 installの時にサーバ訊かれてるみたいで、止まってしまう時とかも。
>>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
あぼーん
878 :
132人目の素数さん :2013/05/18(土) 01:02:02.42
あぼーん
てst
rownames(データ)で定義されてる列名は取り出せるけど、 ある列名があるかないかは、どう確認すればいいの? ループで回す以外で何か用意されてない?
>>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
__ノ)-'´ ̄ ̄`ー- 、_ , '´ _. -‐'''"二ニニ=-`ヽ、 / /:::::; -‐''" `ーノ / /:::::/ \ / /::::::/ | | | | | |:::::/ / | | | | | | | |::/ / / | | || | | ,ハ .| ,ハ| | |/ / / /| ,ハノ| /|ノレ,ニ|ル' | | | / / レ',二、レ′ ,ィイ|゙/ 私は只の数ヲタなんかとは付き合わないわ。 . | \ ∠イ ,イイ| ,`-' | 頭が良くて数学が出来てかっこいい人。それが必要条件よ。 | 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で読みたいのだけど、いい方法ある?
>>884 TeXは入っている?
ヘルプやVignettesはPDFに変換できるし、PDFはKindleで読める。
Rstudioが神過ぎて泣いた さくらのVPSに入れてあちこちで使ってる
質問です。 要素が全て同じ形の5行4列のデータフレームであるリストが存在します。 要素は100個ほどあるのですが、このリストの各データフレームから同じ行のデータを抜き出して、 それらをまとめてリストとして展開したいと思います。 仮にリストの要素が100個だとすると、5行4列のデータフレームですので、 上記の操作をすると、5個の100行4列のデータフレームを要素とするリストを得たいのです。 何か簡単な方法がありますでしょうか? よろしくお願いいたします。
>>889 簡単も何も、Rの入門書に書いてあるような、リストの基本操作だと思うが。
リストの抽出は
?'[['
を参照。リストを対象とした一括処理は、
?lapply
を参照。
>>890 ヘルプを読んだのですが、
例えば、各要素のデータフレームの第2行だけを抽出するような方法がわかりません。
ご教示願えますか?
>>891 lapply(alst,"[",2,)
>>892 返事が遅くなりましたが無事できました。
ありがとうございました。
とりあえずさ、適当な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 できました!!
ありがとうございます!!!
>>896 解決しようで何より。
あとは、
?grDevices::quartzFonts
を読んで幸せになってください。
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
>>899 語学と同じで、辞書を引きながら文章を読むように、
ヘルプを読みながらコードを読みます。
辞書→ヘルプ (例: ?grDevices::quartzFonts)
文章→コード
hookとかname spaceと聞いても、何の意義があるのかピンと来ないレベルなら、
コードを読み進めるためのITの基礎教養がまだないレベルだから、
そちらを優先させるべきかも知れません。
語学に多読が有効であるように、コードを多く読むことはあたなの実力向上に有効です。
901 :
894 :2013/07/01(月) 19:35:00.88
902 :
894 :2013/07/07(日) 12:27:16.23
OSXのRStudioでバックスラッシュが入力できないのだけど、同じ症状の人いるかな? 環境は:OS10.8.4、ことえり、R version 3.0.1、RStudio 0.97.551 Option+¥でも、ことえりの設定を変更しても、¥しか入力できない。 ただし、かなモードだと半角の\が入力できる。 他のエディタとか、ターミナルでは英数字モードでOption+¥でバックスラッシュの入力が可能
>>903 おぉ、本当や。
Emacsと同じ。Emacsの方は強制的にバックスラッシュに変換するように組み込んだが。
こちらはATOKだけど、ATOKからU.S. (星条旗)にすると、
\で円記号、Opt+\でbaskslashがRStudioで入ったよ。
>>904 確認ありがとう。
Rguiだとどうなんだろう?
俺はソースからmakeして、ターミナルからRを使うようになっているから、わからんのだが。
RguiもRstudioもバクスラは円マークが出る 自分には特に関係なかったので疑問を抱かず仕様としてた
連投失礼、Rstudio@win版も行けた、フォントをCourier Newとかに設定すればバクスラがでる 円マークもバクスラも内部では同一処理なんじゃないかな…
>>908 WindowsとMacOSXでは、円記号とバックスラッシュの取り扱いが異なるので、
Windowsのことは参考にならないよ。
フォントでどう表示するかではなくて、どの文字コードが入力されるのかが問題。
MacOSXでは、円記号(0xA5)とバックスラッシュ(0x5C)は別の文字になる。
Windowsでは、円記号もバックスラッシュも0x5Cで、どちらが表示されるかはフォントの設定による。
randomforestで不均衡データをうまく扱う決定的な方法はないのかな?
classwt
>>911 どうもです。
それは使ってたんですがイマイチでした…
913 :
132人目の素数さん :2013/07/19(金) 22:43:38.96
>>913 our operation office is located in China.
いや、十分怪しい。
全部掲載されるなら、中国で事務コストカットというのは分かるんだが、 いっぱいきた時は、どうしてるんだろうね?抽選?先着順?
918 :
群論U :2013/07/20(土) 19:39:21.26
依然あった群論のまとめと続きを行う。 予定は以下の通り 1.ラグランジュ 2.ガロア それ以下は未定 イメージをつかむ事を重点的にやる。
919 :
132人目の素数さん :2013/07/21(日) 13:38:40.61
平均値を逐次更新で求めて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)))では求められましたが、上記のコードではどこがダメなのかわかりませんでした。
for文使う必要あるの? cumsum(x)/seq(1,length(x))とかじゃ駄目なの??
921 :
919 :2013/07/21(日) 16:51:00.69
>>920 その方法でも求められますね。
ただ、今回はなぜ(
>>919 のコード)でエラーが出るのかわからなかったので質問しました。
時間をかけて解決できなかったのでどこが間違っていたのか知りたいだけです。
>>921 演算子の優先順位
seq_len(n-1)
>>919 1:n-1
=(1:n)-1
=0:n-1
924 :
919 :2013/07/22(月) 09:47:33.14
>>922 >>923 演算子の優先順位とはそういうことでしたか
うまくいきました、本当にありがとうございました。
誰か良い知恵をお貸し下さい。 遺伝的アルゴリズムを利用してラッパー法による 特徴選択をしたいと考えています。 例えば、5個の説明変数の組み合わせで2値の判別分析モデルを 構築するとして、下記のように2値の5個の遺伝子で染色体を表現します。 0 1 1 0 1 上記であれば、説明変数2、3、5の組み合わせでモデルを構築します。 分類の正答率やRMSEを評価関数として遺伝的アルゴリズムは コーディングできそうなのですが、0と1で表現される列だけ 抜き出してデータフレーム(?)を作成して、説明変数全体の サブセットを表現する方法が分かりません。 最初はsubset関数とcomb関数を使おうと思いましたが上手くいきませんでした。 どなた様かうまい解決方法をご存じないでしょうか?
>>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(月) 21:37:18.33
Rと直接関係ないのですが、表をcsvで出力した後に見た目を確認する際に 一々Excelを立ち上げるのも面倒ですがテキストエディタだと表形式で見れませんし、 何か簡易な方法はありませんでしょうか? どなたかcsvエディタお使いの方いらっしゃいますか?
>>927 csv-mode
ところでscやoleoってutf-8も対応してたっけ?
R Commanderじゃダメ?
こんなコマンドを作ってみた。 ------ 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にペーストすると表示がずれるかも知れないけど、 こちらではきちんと表になっている。
皆様ありがとうございます 今すぐには試せない状態ですので、後程試してみます
RってRスクリプト開いての実行したい範囲指定してやってるんですけど。普通ですか?
>>933 なんかの本に[Ctrl]A{Ctrl]Rというのが載っていたが、これはWindowsのRGuiかな。
>>933 いちいち範囲指定するのが面倒なので、
こちらの意をくみ取って勝手に範囲指定して実行するような操作(C-c C-c)をしているけど。
どのエディタを使っているの?
デフォのエディタだけど。
>>936 デフォって何?
インストール直後から何にも触っていない状態で、
うちはviだけど、あんたもviなのか?
> options("editor")
$editor
[1] "vi"
デフォといえばRってアイコンクリックしてでてくるやつだけど。
>>938 「アイコン」という言葉が出てきたので、
R本体の話ではなくて、付属品のR.app GUIとかRGui.exeの話をしているんだね。
想像するに、それらのOS固有に開発されているGUI系ラッパーに独自のテキストエディタが付いているのかな。
違うのかな。
まぁ、そのどっちのOSを使っているか知らないけど、
「MacOSX限定の話なんだけど、」とか「Windows限定の話なんだけど」って、
>>933 の頭につけておいてくれたら、
>>933 を読み飛ばせたんだけど、と言ってみる。
なにもかいてなければwindows これ常識だから。
>>940 マルチプラットフォームに対応するUNIX由来のRに、
そんな常識が通用するのか。ばかばかしい。
これはWindowsに移植した弊害だな。
Windowsに移植したからこそ広まったんだろ。 優秀な人材はwindowsを使っているから 開発測度が飛躍的にたかまってな。
>>942 普及に関しては、首肯する。
でも、開発速度は違うよ。
Rの開発Coreチームの人間と会ったり話したりしたことがないの?
Prof. Brian RipleyはDebianとSolarisだよ。
彼らがMinGWをメインで使っているとでも言うの?
マイクロソフトの社員とかいるだろ。
>>943 >Rの開発Coreチームの人間と会ったり話したりしたことがないの?
貴殿はどこでそんな人と会うのか。
どこで会うのか聞いているのに どこで会えるかを答えるアホ
もしかして話しかけるという選択肢がない? まあ、ソーシャルメディアでも同じだけど。
いかにも親しげな書き方しといて実際は相手に認知されてないというオチ
Rって一日目のデータフレームと2日目のデータフレームがあった場合 2つを1つにしないといけないんですか?
例えば 一日目 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を計算するんですか?
>>950 する必要ないです。そのまま使えばよいです。
「必要がない」というだけで、1つにしてもOKです。
表計算の感覚だと1つに統合する必要がありそうな気がしますが、
データの並びにだけ気をつければ、問題ありません。
>>952 ありがとうございます。
でもデータの順番がバラバラで
入っているaもバラバラの場合は
1つにした方が簡単ですよね。
>>953 Rでは、表形式にできないようなデータ構造を含む多種多様で複雑な構造が可能なので、
もう少し具体的なデータ構造についての説明がないと、
あなたの場合はどうなのか、何とも言えない。
ただ、1つにした方が簡単と感じるなら1つにすればどうだろう。
でもRって1つにしてやる関数は揃っているけど 2つにしてやる関数は作らないといけないっぽくないですか?
956 :
954 :2013/08/13(火) 13:56:31.44
>>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
とする。
>>956 ありがとうございます。
そんな感じです。
ただ違うのはaに1 2 3が存在するとは限らないということです。
たとえば初めの日には1がいたけど次の日には2が居なかったりします。
>>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つにする必要はない。
>>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
>>940 その認識はスレによっては非常識でしかないから今すぐ治せ
抽象的な質問で申し訳ないのだけど、 再帰関数を書きたいのだけど、 再帰処理の終了判定条件なしで、 単純に再帰の回数を指定して処理を終了させるにはどうすればよいのだろう。 x' = f(x) みたいな関数があって、 f(f(f(f(f(f(x))))))という風に有限回数で入れ子にしたい。
>>960 「なにも書いてなければ(馬鹿な)windows(ユーザー)」というのはもやは常識だろ
963 :
961 :2013/08/22(木) 09:57:51.44
自己解決。 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()とか考えて迷宮に入っていた。
>>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)
データフレームX(m×n)とベクトルv(1×n)があった時に、vと一致するXの行を抽出したいのですが、シンプルな方法ありませんか? applyとsetequalで出来るかと思ったのですがうまくいきませんでした forループ2つで行と列を見ていけば出来ることは出来たのですが、どうも非効率的な気がします
>>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))
}
>>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(金) 17:33:45.68
ロジスティック回帰について教えてください。 下記データ( 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 )
>>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(金) 21:57:17.78
>>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(金) 23:17:44.07
>>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(土) 00:32:37.50
すいません自己解決しました 言葉足らずで申し訳ありませんでしたが、最終的にやりたかったことは変数の組合せ別の集計でした 適当で申し訳ありませんが結局こうなりました 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)])),]) }
>>972 こんなんもあるよ。変数も指定できるみたい
library(plyr)
count(X)
count(X, c("V1", "V2"))
974 :
132人目の素数さん :2013/08/24(土) 13:28:44.72
>>973 知りませんでした。そのまんま私のやりたいことができてびっくりです
ありがとうございます
>>968-970 ちょっとピントがずれている気がする…
元データ解らないからなんとも言えないんだが、
>>969 氏の回答がより正しいだろうことを前提に、あえて
>>968 氏の欲しい答えを返すと
glm( r ~ t , family = "gaussian"( link = "logit" ) )
となる (これは誤差構造に正規分布を仮定して、ロジスティック式のパラメータを推定している)
ちなみに
>>969 氏の方法だと誤差構造に二項分布を仮定して(以下同文)となる (おそらくこっちの方がより正しい)
裏Rjpwiki読んでてもしかして中の人ってG大のA先生なのではなどと思った
>>976 うーん、口調が違う気がするけど。
それより、河童さんが誰か気になる。
>>977 最近、河童さんと俺しかQ&A初心者コースに回答していない。
過疎化が進んでいるのかな。
Rのホームディレクトリの場所は変更はできないんでしょうか? 作業ディレクトリではなく、ホームディレクトリです。
981 :
980 :2013/09/23(月) 09:54:08.60
すいませんなんか勘違いしてました ホームディレクトリというのはたんにRのアプリが入ってる場所のことなのかな
>>980 > Rのホームディレクトリの場所は変更はできないんでしょうか?
もちろん、出来ます。
でも、突拍子もないところにインストールすると、
見つけてもらえない場合があるので、
標準的な場所以外は、念のために環境変数R_HOMEを設定しておく方が良いでしょう。
ただし、設定したことを忘れると、トラブルシューティングではまることがあるので注意。
983 :
980 :2013/09/23(月) 21:47:00.43
>>982 ありがとうございます
初心者……というかパソコン自体もあまり詳しくないのですが(Macをつかってます)、ホームディレクトリっていうのは、単にRをインストールした場所という意味なんでしょうか?
作業ディレクトリには、.RDataとか.Rhistoryとか.Rprofileとかが入っているのですが、ホームディレクトリというのはそういう、設定ファイル的なものを置く場所ではないのでしょうか。
なんか、置き場のようなものとしてホームディレクトリってのがあるんであれば、作業ディレクトリの近くに置いといたほうがいいのかな…とか思ったのですが
>>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の例をいくつか試してダメだったんですが、作業ディレクトリに置いてたからかな…
でも今は日本語化に成功してるので、後で自分の環境がどうなってるか確認してみます
ありがとうございます
>>986 > たしかにいま解説サイトをいくつか見ると
正しいかどうか確証がないサイトの解説よりも、
helpを読もうよ。
help("Rprofile")
Rはどんどん進化しているので、Webサイトや書籍で解説しても、
すぐに内容が陳腐化します。
自分が使っているバージョンのRではどうなのか、
自分がインストールしているRに尋ねるのが最短だと思いますよ。
988 :
980 :2013/09/24(火) 12:40:21.75
989 :
132人目の素数さん :
2013/09/25(水) 12:34:56.57 0