【R言語】統計解析フリーソフトR 第5章【GNU R】
レス数が1000を超えています。これ以上書き込みはできません。
R は統計計算とグラフィックスのための言語・環境です。
統計計算で重宝するデータ型や、複数要素を処理する演算や関数、
解析結果を表示するグラフィックなど、多彩な機能を提供します。
●関連サイト
The R Project
http://www.r-project.org/
RjpWiki
http://www.okada.jp.org/RWiki/
リンク集
http://www.okada.jp.org/RWiki/?%A5%EA%A5%F3%A5%AF%BD%B8 Rコマンダーのカスタマイズについての質問です。
判別的中率の計算の途中で
次のようなコマンドを実行したいのですが、
hanbetsu.result <- table(データセット$朝食有無, データセット$予測群)
↓これ、だとうまくいきません。
doItAndPrint(paste("hanbetsu.result <- table(",ActiveDataSet(),"$",tclvalue(lhsVariable),",",ActiveDataSet(),"$予測群)" sep=""))
,(コンマ)をペーストするにはどうしたらいいのでしょうか? >>5
Rcmdrはまったく分からないんだけど、
> ,(コンマ)をペーストするにはどうしたらいいのでしょうか?
","で合っているよ。うまくいかない原因は別にあると思うよ。
いずれにせよ、読んでいる人が再現できるものを提示しないと、
誰も助言できないよ。
特に、GUIな人は、トラブルを全て「うまくいきません」ですませてしまって、
読んでいる側は意味不明。←他人からは解決する気がないと判断される
あと、いちいちsep=""と書くのは面倒ではありませんか?
私はpaste0()を使います。 うまくいきました。
うまくいったのはこちらです。
doItAndPrint(paste("hanbetsu <- table(", ActiveDataSet(), "$", tclvalue(lhsVariable), ",", ActiveDataSet(), "$予測群)", sep=""))
コンマの後の空白をきちんと空けたのが良かったようです。ありがとうございました。 >>7
> コンマの後の空白をきちんと空けたのが良かった
違うと思う。 >>5 はsepの前にあるべきコンマが抜けていたから。 >>8
比較するとそうですね。
ありがとうございます。勉強になりました。 実にどうでもいい話かもしれませんが、RってTeXみたいに書き方の規定ありますか?
フォントとか配置とかそういう感じの コイツら、無職の、女性恐怖症の、ゴミ・クズ・カス・無能・虫けらのクソガキども!
無職のクソガキども! 大変なコトになるな!
憲法改正だ! 96条を改正してから、9条を改正する。 そして、何条を改正するか?
18条だ! そうして、国家総動員法ができて、オマエたち、無職のクソガキどもは、真っ先に徴兵だ!
オマエたちは、頭デッカチの虚弱児・ひ弱だから、最下等兵! すぐ戦死だ!
アハハハハハハハハハハ!!!!!!!!!!!!!!!!!!!!
死にゆく、クソガキどもに、大伴家持の詩を贈ってやろう!
海行かば 水浸く屍 山行かば 草むす屍 大君の 辺にこそ死なめ かえりみはせじ! >>10
質問の意味が分からないぞ。
TeXの書き方(ソースの書き方なら全くの自由だ)の規定と、
フォントの配置(TDSのことか?)がどう関係があるの?
Rのコーディング作法なら、Googleが提唱しているものがある。
ttp://google-styleguide.googlecode.com/svn/trunk/Rguide.xml
また、作法通りに整形し直してくれるパッケージもある。 >>13
すいません確かに意味不明でした
文章中に「TeX」と書くときは「全部大文字でEはTより下で・・・が本当の表記だけど出来ないならしょうがないからTeXと書くように」とか決まっていたと思います
Rも同様に書式の決まりがありますか?
というのも、文章で「R」ただ1字を書くとどうも可読性が悪い気がしてしまって、何かいい方法はないかと・・・フォントくらい変えた方がいいかと悩み中です >>14
全く文意をくみ取れていなかったようだorz
¥TeX{}のR版を探しているといことだよね。
R界隈の論文を見れば分かると思うけど、*ない*です。
journal of statistical softwareのLaTeXクラスファイルに定義されていた気もするが、
標準化されていない。
スライドなど少々の遊びが許される場合で、Rの可読性を高めるたいなら、
「全ての解析は¥includegraphic[with=1.5zw]{Rlogo-4.png} ver.3.01で行いました。」
などと、ロゴを使えばどうか。
ttp://developer.r-project.org/Logo/ >>15
なるほど、ロゴを使うというのは盲点でした
今度試してみます
ありがとうございました 積み立て棒グラフ出したいんだけど行列の要素にマイナスの値はいってるとちゃんと
表示されなくておかしくなる。そういうものなの? >>17
おかしくなるも何も、負の値を含む積み上げって、
どういう図を期待しているんだ。
> barplot(matrix(c(1:3, -1, 4:5),3))
予想通りの図になるが、これがおかしいということ? >>18
サンクスwそのグラフで俺の頭がおかしかった事に気がついたw これでMC法使えるオススメのマニュアル(書籍)紹介して下さい。 アメリカサマータイムにできないんだけど。なんで?もとからないのか?
ヨーロッパサマータイムあるのに意味分からん。 あっできた。
EDT指定してもできなかったがAmerica/New_Yorkにしたらできたわ。イミフだわ。 >>21
MC法が何か勉強してから、もう1度来なさい。
ttp://ebsa.ism.ac.jp/ebooks/node/1264
>>22-23
意味不明。POSIXt()の引数が期待通りでなかったってこと?
New YorkならEST5EDTじゃないの? >>24
引数にEDT入れたらそんなのありませんって言われたw
EST5EDTって入れればいいのかな?まぁ"America/New_York"って入れたらできたから解決したけど。
ちなみにBSTイギリス夏時間もだめだった。でもWET西ヨーロッパ夏時間はちゃんと認識した。
できたりできなかったりよくわからんわ。 変数A,B,C,D,Eがあるデータを2グループや3グループに可能な限り均等に分けたいんですが、
層別ランダム割付という手法があるというところまでは調べられました。
Rでランダム割付が可能と聞いたのですが、やり方を解説しているサイトなどありませんか?
またはご存知の方いらっしやいませんか? >>26
Stratified Randomizationって、実際にはBlock Randomizationの方法で実現するわけだから、
Block Randomizationのパッケージblockrandを使えばよいと思うよ。
ttp://cran.r-project.org/web/packages/blockrand/
オレは使ったことがないけどね:-p 追記。
cranの中を探したら、他にもいろいろあるみたいだ。
全文検索システムのnamazuでいろいろと検索してみてください。
ttp://search.r-project.org/cgi-bin/namazu.cgi
あと、↓充実した説明で助かるね!
ttp://en.wikipedia.org/wiki/Randomized_block_design ARモデルのAICに関する質問です。
ar(データ)
データ$aic
では、相対的なAICの値しか表示されないため、最適な次数はわかってもAICの値がわかりません。
また、arima(データ, order=c(x,0,0))
で行うと定数項が含まれているため純粋なARモデルのAICを求める事が出来ません。
ARモデルのAICを求める方法、教えてください。 >>29
> ar(lh)$aic
0 1 2 3 4 5 6
18.3066645 0.9956542 0.5380214 0.0000000 1.4903597 3.2127890 4.9932119
7 8 9 10 11 12 13
6.4694960 8.4625678 8.7411958 10.7408834 12.5338637 14.4847850 16.4617958
14 15 16
18.0437158 17.4398358 19.3449467
> library(timsac)
> unimar(lh)$aic
[1] -34.34604 -46.87367 -47.40513 -46.86175 -44.86637 -43.20116 -41.34344
[8] -40.37922 -38.39713 -41.00437 -39.38885 -37.39977 -35.53922 -33.63709 >>30
ありがとうございます。
無事できました。 windowsのエクスプローラーからディレクトリの場所をコピペすると、
例えば(E:\R)となりこのままではsetwd("E:\R")と行うことができません。
いつもはsetwd("E:\\R")やsetwd("E:/R")に手で修正しています。
何かもっと簡単な方法はないでしょうか? >>33
Windowsをやめると幸せになれます
>>32
人による。
なお、コーディングはひたすら他人のコードを読むのが上達の近道。 >>33
"E:\R"を"E:\\R"や"E:/R"に自動置換してsetwd()に渡すオレ様関数を書けばよいのでは。
my.setwd <- function(p) setwd(nomalizePath(p))
こんな感じかな。こちらはWindowsじゃないので未検証。
ちなみに、文化の違いだと思うけど、
私は、対象ディレクトリに移動して、
ごにょごにょ作業や確認をしてからRを起動するので、
setwd()が必要な場面に出会わない。 >>32
何をやりたいかによる。
しかし確実に言えるのは、日本人(含在日)の本は全てダメ。 >>36
文系で、あまり高度でない実験結果や計量分析のまとめなど、普通はSPSSとかでやる人が多いことをRでやるばあいは? R in Action や著者のページをまず読んで、
R Cookbook (邦訳あり)で忘れたことを参照したり、
R Graphics Cookbook でグラフの書き方を学んだら?
あとは、reshape や plyr の使い方を作者の論文で勉強しておくと便利 >>40
> R in Action
おぉ、これは初めて知った。
講義に使えそう。 ENTERを押すと次のグラフが表示されるようなときに、そのグラフ全部を並べて表示するにはどうしたらいいですか? >>43
plot(〜〜)を何度もする場合は確かにそれでなりますが、今は一回のplot(〜〜)で
「クリックまたはENTERキーを押すと次のページに移ります」って出て
エンターを押すたびに次のグラフがプロットされるようなものなので出来ません。 なんかおかしな。
ask=TRUEになっていても、mfrow=c(1,1)でなければ、
一度に描画されると思うが。
>>44は何か勘違いをしていないか。
具体的に再現できるコードを示して。 例えば
library(vars)
data(Canada)
plot(VAR(Canada))
などです。 >>47
どんだけ特殊なケースを持ち出すんだよ。
plot.varest()って、ここまで変態な関数にはびっくりだ。
vars:::plot.varest を見たら分かると思うけど、layout()を使っている時点で、
mfrowで制御できないし、
if (nv > 1)
par(ask = TRUE)
ってハードコーディングされているから、関数のオプションでどうにかなるものでもない。
結論は、あきらめろ。 >>48
なるほど
難しいことはわかりませんがどうにもならないということだけはわかりました
別々に保存して並べて貼るぐらいで我慢します
ありがとうございます >>49
厳密に言うと、どうにもならないこともないんだけど、
必要な労力は、その目的にペイしないと思う。
pdf(file="hoge.pdf")
plot(VAR(Canada))
dev.off()
ってして、3ページになっているhoge.pdfをぐりぐりスクロールして見るのはだめなの?
3つをきちんと並べて1枚の図にしなくてはいけないの? 文字列”123,456,789.123”を数値に変換するにはどうすれば良いのでしょうか?
一つの場合はカンマを取って変換を行えば良いとわかるのですが、
文字列の数が200あるのといくつかの文字列の小数点の位置が僅かに異なるため、効率よく行う方法が知りたいです。 >>51
それ専用の関数を見たことがあるが、どのパッケージだったか覚えていない。
5000パッケージなんて数が増えすぎ。
まぁ、普通に置換すれば良いと思うが。
> a <- "123,456,789.123"
> options(digits = 15)
> as.numeric(gsub(',','',a))
[1] 123456789.123 >>52だが、誤解されるかも知れないので、
先回りするが、文字列の数がいくつあろうが、
小数点の位置が異なろうが、>>52の提案はそのまま通用する。
> A <- rep(a, 10)
> A[5] <- paste0(A[5], "4")
> A[6] <- "9.1"
> A
[1] "123,456,789.123" "123,456,789.123" "123,456,789.123" "123,456,789.123"
[5] "123,456,789.1234" "9.1" "123,456,789.123" "123,456,789.123"
[9] "123,456,789.123" "123,456,789.123"
> as.numeric(gsub(",","",A))
[1] 123456789.1230 123456789.1230 123456789.1230 123456789.1230 123456789.1234
[6] 9.1000 123456789.1230 123456789.1230 123456789.1230 123456789.1230 >>50
あぁこれは確かに楽でなかなかいい感じだなー
管理するにしてもこっちの方がよさそう >>53
ご丁寧にありがとうございます。
無事できました。 狸
○●○●○●○●○●○●○●○●○●○●○●○●○●○●○●○●○●○●○●○●○●○●○●○●○●○●○●○●○●○●○●○●○●
●○●○●○●○●○●○●○●○●○●○●○●○●○●○●○●○●○●○●○●○●○●○●○●○●○●○●○●○●○●○●○●○●○
○●○●○●○●○●○●○●○●○●○●○●○●○●○●○●○●○●○●○●○●○●○●○●○●○●○●○●○●○●○●○●○●○●
●○●○●○●○●○●○●○●○●○●○●○●○●○●○●○●○●○●○●○●○●○●○●○●○●○●○●○●○●○●○●○●○●○
○●○●○●○●○●○●○●○●○●○●○●○●○●○●○●○●○●○●○●○●○●○●○●○●○●○●○●○●○●○●○●○●○●
●○●○●○●○●○●○●○●○●○●○●○●○●○●○●○●○●○●○●○●○●○●○●○●○●○●○●○●○●○●○●○●○●○
○●○●○●○●○●○●○●○●○●○●○●○●○●○●○●○●○●○●○●○●○●○●○●○●○●○●○●○●○●○●○●○●○●
●○●○●○●○●○●○●○●○●○●○●○●○●○●○●○●○●○●○●○●○●○●○●○●○●○●○●○●○●○●○●○●○●○
○●○●○●○●○●○●○●○●○●○●○●○●○●○●○●○●○●○●○●○●○●○●○●○●○●○●○●○●○●○●○●○●○●
●○●○●○●○●○●○●○●○●○●○●○●○●○●○●○●○●○●○●○●○●○●○●○●○●○●○●○●○●○●○●○●○●○
○●○●○●○●○●○●○●○●○●○●○●○●○●○●○●○●○●○●○●○●○●○●○●○●○●○●○●○●○●○●○●○●○●
●○●○●○●○●○●○●○●○●○●○●○●○●○●○●○●○●○●○●○●○●○●○●○●○●○●○●○●○●○●○●○●○●○ >>57
そんな小中学生みたいな反応は好きにすればよいが、
REXPじゃなくて何でSEXPなんだろうかと疑問に思ったまま幾数年。 とあるアプリのC言語のDLLから、Rとデータのやり取りをしたいのですが、
難易度は高いですか?というかできますか? >>59
出来ます。
難易度は人によりますが、
そのような質問をする人には無理だと思います。 >>60
ありがとう。できることがわかれば、時間をかければなんとか、、。 >>61
やる気があるなら、ヒントを追加。
読むべきドキュメント: ttp://cran.r-project.org/doc/manuals/R-exts.html
手順としては、そのDLLとRを仲介するインターフェイスをCで書く。
その際、>>57 の型を使う。
たぶん、20-50行程度ですむような気がする。
MinGWを含むRtoolsをインストールして、書いたCソースをコンパイル。
Rから、インターフェイスをロードして、使えるかどうかチェック。
デバッグしながら、Cソースを直して、再度チェック、その繰り返し。 すみません
tmp <- sample(1:150, 100)
のtmpって何を表してるんですか?
参考書のどこにも説明がなくて困ってます >>63
何を表しているのかという問いに対する答えはRオブジェクトです。
tmpという文字列はRオブジェクトにつける名前で、
ユーザが任意に決めます。 >>62
ヒントありがとうございました。MinGWですか、、VC++で無理目だったらMinGWでアタックしてみます。
時間はあるんで、いろいろ勉強していきます。 例えば
result <- lm(Sepal.Length ~ ., data=iris)
とでもして、result$coefficientsを取り出したいとき、
result$coe
でも出ちゃうんですが、この補完機能(?)は切れないのでしょうか?
ちょっとスペルが足りなくてもエラーがでないのでいつか問題が起きそうな気が
してしまうのですが、それとも心配しすぎでしょうか >>67
逆に、プログラムの内部で、
result$coefficientsの代わりにresult$coeとコーディングしているものがあれば、
プログラムが動かなくなるけど、そういう副作用はいいの?
一意の場合は省略可能というルールがある限り、そのルールでRが動いているのだから、
それでよいのでは? データ・サイエンスのプログラミング言語はRからPythonに置き換わる
http://readwrite.jp/archives/2534 k-meansクラスタリングで質問があります
クラスタリングベクトルを出した後、その結果を元のデータフレームに結合して
それをもとに条件抽出し該当データフレームを抽出したいのですが、クラスタリングベクトルの数値を条件にすることはできないのでしょうか
たとえば、
SEX HEIGHT WEIGHT
1 F 158 51
2 F 162 55
3 M 177 72
4 M 173 57
5 M 166 64
とあったとき
SEX HEIGHT WEIGHT CLUSTER
1 F 158 51 1
2 F 162 55 2
3 M 177 72 3
4 M 173 57 3
5 M 166 64 2
というように結合してCLUSTERの数値をもとに抽出を行いたいです >>71
> (a <- data.frame(sex=factor(c("F","F","M","M","M")), height=c(158,162,177,173,166), weight=c(51,55,72,57,64)))
sex height weight
1 F 158 51
2 F 162 55
3 M 177 72
4 M 173 57
5 M 166 64
> a$sex <- as.numeric(a$sex)
> cl <- kmeans(as.matrix(a), 3)
> (b <- cbind(a, cluster=cl$cluster))
sex height weight cluster
1 1 158 51 1
2 1 162 55 1
3 2 177 72 2
4 2 173 57 3
5 2 166 64 3
3だけ抽出
> b[b$cluster == 3, ]
sex height weight cluster
4 2 173 57 3
5 2 166 64 3
こういうこと?ちなみに、cbind()で結合する必要はないよ。 R使ってる人って分析前のデータ整形もRでやろうとするけど、これって効率的なのか?
整形はExcelでやって、統計解析だけRを使うのは異端なのか? >>74
そんなことはないし、Excelでも何でも使えるなら使えば良いと思う。
でも、世の中のデータはそんな単純なデータばかりじゃない。 >>74
RExcelとか使うでしょ。
他にも
「RとRubyによるデータ解析入門」とか
「R&JavaScriptによるデータ解析と視覚化テクニック」
とか言う本が出ているくらいだから、お察し。
ただ、最近は、R使わずに全部Pythonでやっちゃえとかいう Python好きが居て、
それはそれでうっとおしい。 >>74 >>78
コマンド一つで処理できれば言語はどうでもいい。適当なのを使えばいいだけ。 平均値の95%の信頼区間の下限値を数値として、取り出したいのだけど。
t.test()だと、T検定の平均値ほかいくつもの結果が表示される。
他のプログラムからRの計算結果(信頼区間の下限値)だけを取り出したいのだが。
良い方法ありますか? >>81
よく分からないな。
信頼区間の下限値を取り出せばよいのでは?
例えば、t.test()はhtestクラスのlistを返す。そのlistにはconf.intという名前の要素があり、
それは数値ベクトル(要素数は2)だ。その1つめの要素が下限。
他のプログラムって何?javaやpythonなど専用のインファーフェイスがあるよ。
探してみれば?
パイプで渡したいなら、パイプで渡せば良い。
パイプで渡すならこんな感じ?
$ Rscript -e 't.test(1:100)$conf.int[1]' |sed 's/¥[.¥]//g'
44.74349 $conf.int[2]
をつけて解決しました。
ありがとうございます。
他のプログラムというのは、CのDLLです。Rccpを利用するか悩みどころです。 >>83
それ、下限じゃなくて上限では?
> 他のプログラムというのは、CのDLLです。Rccpを利用するか悩みどころです。
またしても意味不明瞭。よく分からないな。
Rの中からCプログラムを呼び出すのか、Cプログラムの中でRを呼び出したいのか。
なぜ、exeじゃなくてdllと言うのか。「CのDLL」という表現ならWindows限定なのか。
Windows限定ならRと通信する方法がもっと別にあるのじゃないだろうか。 >それ、下限じゃなくて上限では?
すいません。$conf.int[1]で下限ですね。
>またしても意味不明瞭。よく分からないな。
>Rの中からCプログラムを呼び出すのか、Cプログラムの中でRを呼び出したいのか。
Cプログラムの中でRを呼び出したいです。
これはきちんと説明せねば。少し長くなりますが、、
MT4という為替取引(いわゆるFX)を支援するアプリがあり、
このアプリには自由に取引のアルゴリズムを作れるよう独自のプログラム作成機能があります。
その言語がC言語に似たmqlと呼ばれるものです。
通常は、mqlファイルを専用のコンパイラでコンパイルしてMT4で実行します。
ただ、MT4で実行されるものはメモリや実行速度において弱い部分があり、
その為、MT4に利用できる.dllをC言語などで作成し、dll上でアルゴリズム計算をさせMT4に返す
という方法をとる人もいます。というか自分がそういう状態です。
MT4(mql) → my.dll
記述的にはmqlファイルにmy.dllをimportさせます。
このdllから、Rに対して統計的な計算をさせその結果を得たいと思案して先の質問となりました。
t.test()で表示される内容は解っていたのですが、そこから数値だけをどうすれば返すのか、わからなかったのです。 当方は、直接dllからRに対して計算をさせその結果を返す方法を知りません。
どうやら、Rcppを使えば良いかも?というレベルです。
ただし、MT4において、mt4R.dllというフリーのライブラリがあり、それを用いると
簡単な記述でMT4とRを連携させることができます。それは当方も確認済みです。
下のような流れです。
MT4(mql) → mt4R.dll → R
さて、自分は my.dllを作成していますが、mt4R.dllを利用してRを計算するには、
MT4(mql) → my.dll → MT4(mql) → mt4R.dll → R
という手順を踏まないといけません。MT4(mql) ⇔ my.dllとの配列の扱いも実は面倒な仕様があり、できれば
MT4(mql) → my.dll → R
のように直接my.dllからRを呼び出し計算させその答えが得たらいいなと思います。
とりあえず、t.test()から知りたい統計結果だけをとりだせたのでまずは一歩すすみました。
Rcppを持ちいるほかに良い方法があるようでしたら、教えてくだされば幸いです。 書き忘れました。MT4はWindowsで動作できるアプリです。 ttp://cran.r-project.org/doc/manuals/r-release/R-exts.html#Calling-R_002edll-directly
このあたりを読むか、
RCOMのようなものを使うか
ttp://sunsite.univie.ac.at/rcom/ ありがとうございます。
よく読んで参考にさせていただきます。 すみません、このサイトナノデスの
http://d.hatena.ne.jp/yutakikuchi/20120730/1343605481
kabu_data_close = as.ts( scan( "/home/yuta/work/R/kabu/data/kabu_ar_training_close.txt" ) )
ar_predict_result <- matrix()
arima_predict_result <- matrix()
j <- 1
for( i in 123:136) {
training_kabu_data <- kabu_data_close[1:i]
#ARModel
ar_data_close <- ar( training_kabu_data )
ar_predict_close <- predict( ar_data_close, n.ahead = 1 )
#ARIMAModel
arima_data_close <- arima( training_kabu_data, order=c(1,0,1) )
arima_predict_close <- predict( arima_data_close, n.ahead = i )
ar_predict_result[j] <- ar_predict_close$pred[1]
arima_predict_result[j] <- arima_predict_close$pred[1]
j <- j+1
}
scanでよみこんだtxtはデータの数が123こあります。なのにfor文は123:136で
<- kabu_data_close[1:i]となっています。123以降はkabu_data_closeには入ってないのではないのでしょうか??
というか違うデータでですがError in na.fail.default(as.ts(x)) : missing values in object
とでます >>93
エスパー募集ですか?
さすがに、kabu_data_closeの構造を秘密にされたら答えようがない。
str()ぐらい示そうよ
ちなみに、
> hoge <- as.ts(1:100)
> str(hoge)
Time-Series [1:100] from 1 to 100: 1 2 3 4 5 6 7 8 9 10 ...
> hoge[101:110]
[1] NA NA NA NA NA NA NA NA NA NA
という仕様。 >>94
返信ありがとうございます。
>>93のkabu_data_closeとは違いますが
> kabu_data_close = as.ts( scan( "C:/Users/root/Documents/kabu_ar_training_close.txt" ) )
Read 120 items
> ar_predict_result <- matrix()
> arima_predict_result <- matrix()
> j <- 1
> for( i in 120:133) {
+
+ training_kabu_data <- kabu_data_close[1:i]
以下同文
で
Error in na.fail.default(as.ts(x)) : missing values in object
> str(kabu_data_close)
Time-Series [1:120] from 1 to 120: 10688 10599 10508 10579 10653 ...
とでます >>93のサイトのままなのでコードはかえないでいいはずなのですが
したいことは一回一回学習して予測することです。
+ j <- j+1
kabu_data_close[i+1]<-ar_predict_result[j]
}
を加えてみましたが
Error in `[<-.ts`(`*tmp*`, i, value = NA_real_) :
only replacement of elements is allowed
とでます。 すみません。解決しましたmm;;
サイトのコメント欄に同じ質問がありました。。。 >>97
そういうときは、どういう風に解決したかをまとめて、ここにも貼るものでしょ! 普通は回帰係数を求める時っていろんな説明変数を試すものなのに、
株価予測は株価だけしか使わないのが当たり前になってるのが不思議。 >>98
普通にfor文の136までのデータを使ってるようでした;;
技術的な問題じゃないので申し訳ないのですが
予測するデータは2012年7月以降、学習データは2012-01-04〜予測の前日
このサイトの流れから予測の前日というのが7月の前日まで
と勘違いしていました。; 自分には何を言ってるのか分からんが、本人が分かったならそれでいいのでは? >>101
scan()するデータがそもそも間違っていたのに、
思い込みが原因で混乱していましたってことだろ(違うかもしれんが)。
最小のサンプルデータも提示せず、まさしく「エスパー募集」だったてことだ。 Error in arima(training_kabu_data, order = c(1, 0, 1)) :
non-stationary AR part from CSS
In addition: Warning messages:
1: In arima(training_kabu_data, order = c(1, 0, 1)) :
possible convergence problem: optim gave code = 1
2: In arima(training_kabu_data, order = c(1, 0, 1)) :
possible convergence problem: optim gave code = 1
3: In arima(training_kabu_data, order = c(1, 0, 1)) :
possible convergence problem: optim gave code = 1
すみません。このエラーってどうゆう意味でしょうか;; Rを用いたパネル分析(ランダム効果モデル)におけるエラーについて
Rを用いて、パネル分析を行ったのですが、
「 以下にエラー swar(object, data, effect) :
the estimated variance of the individual effect is negative」
というエラーが出てきます。
どのような対処を行えば、エラーを解消することが可能でしょうか。 >>104
エスパー募集ですか?
負の分散が生じるということはデータに問題があり、解決策はない気がしますが、
あなたが書いた式にケアレスミスがあることが原因である場合は、
エスパーでもない限り、読み手には分かりません。
再現できる最小のサンプルデータセットと、サンプルコードを示せば、
誰かがあなたの間違いを指摘してくれるかも知れません。
まずは、データを半分、そのまた半分と削って、エラーの再現を確認してはどうですか。 すみません、Mac OS X Mavericksで、R3.0.2をつかっているのですが、起動すると下記のような警告メッセージが表示されるようになってしまいましたが、意味がよくわかりません・゜・(ノД`;)・゜・
何がおきているのでしょうか・・・
During startup - Warning messages:
1: Setting LC_CTYPE failed, using "C"
2: Setting LC_COLLATE failed, using "C"
3: Setting LC_TIME failed, using "C"
4: Setting LC_MESSAGES failed, using "C"
5: Setting LC_MONETARY failed, using "C"
[R.app GUI 1.62 (6558) x86_64-apple-darwin10.8.0]
WARNING: You're using a non-UTF8 locale, therefore only ASCII characters will work.
Please read R for Mac OS X FAQ (see Help) section 9 and adjust your system preferences accordingly.
[Workspace restored from /Users/ユーザ名/Documents/R/R_Working/.RData]
[History restored from /Users/ユーザ名/Documents/R/R_Working/.Rapp.history]
2014-01-11 13:20:07.129 R[1292:707] Can't open input server /Users/ユーザ名/Library/InputManagers/SafariStand5.1.182 >>106
意味も何も、読んだそのままの意味だと思うけど。
ローケルがCなら、日本語を使っちゃダメだよ。
ターミナルでRと打ち込んでRを起動させたら何か変化がある? >>108
言語の問題だったですか・・・
最近、Macの言語環境を英語⇔日本語で何回か切り替えたのですがそれがいけなかったんでしょうか(ふだんは英語環境)
とりあえずあとでlocaleというのの設定をやってみます(localeという言葉をそもそも知らず、localかと思いました)
ターミナルから起動したら、とくに警告は表示されなかったです [1]1 2 3 4 5 6 7
[2]8 9 10
を
1
2
3
4
5
6
7
8
9
10
と表示させるにはどうせたらよいでしょうか おお、ちょうどレスしようと思ったのに
> a<-1:7
> b<-8:10
> c<-c(a,b)
> c.df<-as.data.frame(c)
> c.df
一応どうやって解決したかも書いてほしいな ans<-lm(ch1~.,data)
ans2<-stepAIC(ans)
(略)
Step: AIC=6680.92
ans3<-lm(ch2~.,data)
ans4<-stepAIC(ans3)
(略)
Step: AIC=6260.8
:
(略)
:
ans47<-lm(ch24~.,data)
ans48<-stepAIC(47)
(略)
Step: AIC=8953.5
この出力されたAICの値(計24個)の値を比較して一番値が低いAICを表示したいです。
できる人いましたらやり方教えて下さい。 データフレームで、各行のすべての列の値を合計した列をつくることってできますか?
たとえば列が1月、2月、3月、、、ってなってて最後に年間計の列をつくりたいとか。
列を1個1個ベクトルで取り出して合計してからデータフレームに入れないとダメ? data$total <- apply(data, 1, sum, na.rm=TRUE) こうスレをみると、データフレームの勉強はした方が良さそうだな。
Rで統計計算ができるよお。だけじゃなくて、どうやってデータを揃えるかとかが大事になってくるなあ。 >>115
ありがとうございます。
そうでした、applyだった・・・
R-Tipsを読み直しました。
>>116
初心者なんですが、基本の操作を早く覚えたいです・・・ 列名称やベクトルの名称などの、数字ではない情報を、for文などによって繰り返しで大量に生成することってできますでしょうか?
たとえば、"V1"という名称のベクトルから"V100"という名称のベクトルを、何らかの規則(たとえば1〜99までの奇数の列を1倍したベクトル、2倍したベクトル、3倍したベクトル……など)
ようは、規則にしたがって名前をたくさんつけるという操作が可能なのかどうかを知りたいです 途中が消えてましたm(_ _)m
列名称やベクトルの名称などの、数字ではない情報を、for文などによって繰り返しで大量に生成することってできますでしょうか?
たとえば、"V1"という名称のベクトルから"V100"という名称のベクトルを、何らかの規則(たとえば1〜99までの奇数の列を1倍したベクトル、2倍したベクトル、3倍したベクトル……など) に従って生成したい場合などです
ようは、規則にしたがって名前をたくさんつけるという操作が可能なのかどうかを知りたいです && || をにデータフレームの条件に使ってもエラー出ないのえぐくない?
ifの癖で間違っちゃうのだが。 質問があります
A B
10 0.6
20 1.7
30 6.9
2.5 0.3
15 5.7
30 6.9
11 0.1
38 3.2
45 4.8
70 6.8
というようなデータフレームがあるのですが
Bは0<B<7の範囲をとる数字になっていていくつもの昇順データの連結物になっています
これをBの値が大きいものから小さいものに変わったときで切ってデータフレームを新しく切り出したいのですがどうしたらいいでしょうか >>113
traceの最後に出てくるAICはextractAIC()で取出せるから、
ans2, ans4, ..., ans48をリストにして、
sapply(selectedModelList, extractAIC)して、sort()
>>125
グループ化すれば
grp <- 1
for(i in 2:nrow(data)-1){
if(data$B[i] < data$B[i+1]) grp <- c(grp, grp[i])
else grp <- c(grp, grp[i]+1)
} psychというパッケージをつかってるんですが、たとえばfa()関数で因子分析をやったときに、その結果を全部まとめてcsvに出すことってできないんでしょうか?
因子パタンだけを
write.csv(分析結果$loadings, "分析結果.csv", quote=F)
とかやることはできるのですが、一式全部出力できないもんかと…… 行列でできなくてデータフレームだとできることって何があるの? >>127
>一式全部
多義的な表現なので、全部とは具体的にどのことかきちんと説明しないと、
期待する助言は得られないよ。Rオブジェクトとそのものなのか、
printメソッドなのか、summaryメソッドなのか、strか? >>125
ずばっとやる方法は思いつかないなぁ。
B[i] > B[i+1]が成立したときのiを取り出して、
そこで切るとか。 >>126 がすでに答えていたorz
なるほどね。グループ番号を付与するか、
思いつかなかった。 >>126
for文じゃなくてベクトルで一括処理するなら、
grp <- cumsum(c(F, diff(data$B)<0)) かな。 >>132
オォそれはスッキリ。皆よくヌルっとそういうのが出てくるね >>132
すげー、天才だ!
こんなのが思いつくなって人間じゃない、イカれている .Rprofileって、ワーキングディレクトリに置いておけばいいのでしょうか?
分析ごとにワーキングディレクトリをかえようと思っている場合、.Rprofileをコピーしてそれぞれのディレクトリにいれて、setwd()すればいいだけでしょうか?
Rを立ち上げているとき、どの.Rprofileが読み込まれて作動しているのか確認する方法が分からず・・・
どなたかアドバイスおねがいします >>135
> どの.Rprofileが読み込まれて作動しているのか確認する方法
$ cat .Rprofile
Rprofile.version <- "1.0"
として、Rを起動してみると、
> ls()
[1] "Rprofile.version"
と.Rprofileが読み込まれている。
中身はもちろん
> Rprofile.version
[1] "1.0"
となる。つまり、識別のためのRオブジェクトを個別に.Rprofileに書いておけば、
区別はつく。 >>135
> .Rprofileって、ワーキングディレクトリに置いておけばいい
はい。ただし、起動時のカレントディレクトリとワーキングディレクトリが異なる場合は駄目。
?Rprofile
?Rprof
あたりは読もう。 >>136
なるほどたしかに!
ありがとうございます。
.Profileの置き場は、起動時の初期ワーキングディレクトリにおいてあるものが読み込まれるみたいなので、
preference > start upの画面で設定したディレクトリに置いとくしかないことも分かりました。 >>138
Rを起動する流儀はひとそれぞれだけど、
csvファイルなどデータをおいたワーキングディレクトリに移動して、
csvファイルの中身や、その他のファイルの確認をしてから、
そこで(そのディレクトリで)Rを起動すると、
起動時のカレントディレクトリとワーキングディレクトリは同一になる。
つまり、ワーキングディレクトリに移動してからRを起動した方がいろいろと都合がよいし、
私はRを使い始めて10年来、このようにRを起動している。
どのディレクトリでRを起動しても、あなたの自由だよ。 >>140の追記。
ワーキングディレクトリに移動してからRを起動すると、
そのときにワーキングディレクトリに置かれた.Rprofileを読み込む。
だから、それぞれのワーキングディレクトリにそれぞれの.Rprofileを置くのは正解。 レベルの低いお話で恐縮です。
Rでは推測統計などで利用をしていましたが。プログラム的なものを作りたいと思うのですがちょっと歯が立たないです。
きっかかりを付けたいと思います。以下のような内容をスクリプトで書くと、どうなるかご提示いただけますでしょうか。
5*10の行列(一般的な意味)を用意して、これを"matA"とします。
//2行4列の場所をmatA[2][4]とします。
rowA = 3 colA = 5 coubA = 0.3 をmatAに入力します。
//上の式の意味はmatA[3][5]に0.3を配置します。という意味です。
以下同じように
rowA = 2 colA = 7 coubA = -0.3 をmatAに入力します。
rowA = 1 colA = 4 coubA = 0 をmatAに入力します。
rowA = 3 colA = 5 coubA = 0.4 をmatAに追加します。※
rowA = 1 colA = 4 coubA = 0.3 をmatAに追加します。※
//追加されたデータは元のデータ上に重ねていく3次元のイメージです。追加されるデータは、今後も増えていきます。
matA[2][7]を参照する。→ (-0.3) が返ってくる。(-0.3 0) が返ってくるのはNG
matA[3][5]を参照する。→ (0.3 0.4) が返ってくる。
matA[1][2]を参照する。→ 何も返さないか。(NA)が返ってくる。(0)や(0 0)が返ってくるのはNG
以上、お時間のある方、ぜひご教授くださいませ。 >>140
ありがとうございます
移動ってのは、ターミナルで操作されてるということでしょうか >>142
arrayを使うのはどう?
簡単のために、重ねの最大が2つまでとして、
> matA <- array(NA, c(5, 10, 2))
> matA[3, 5, 1] <- 0.3; matA[2, 7, 1] <- -0.3; matA[1, 4, 1] <- 0;
> matA[3, 5, 2] <- 0.4; matA[1, 4, 2] <- 0.3
> matA[2, 7, ]
[1] -0.3 NA
> matA[3, 5, ]
[1] 0.3 0.4
> matA[1, 2, ]
[1] NA NA
NAがいやなら、na.exclude()でも使えばいい。
matA[3, 5, i]がNAでないなら、matA[3, 5, i + 1]に代入するような条件分岐で一般化すればいい。
別アプローチとしては、要素がlistの行列を作るという手もある。 >>142
matA<-matrix(NA,nrow=5,ncol=10)
じゃあダメなの? >>144さん>>145さん ありがとうございました。スルーされるかと思ってた。
>>145さん。matrix 使うべきなのか array を使うべきなのか list なのか。
まだよく分かっていないのが正直なところです。
>>144さん スクリプト作成。ありがとうございます。
リストを使うのは難しくなりますでしょうか?
イメージとしては5*10の行列の碁盤の上に、個々のベクトルが上に育っていくような。
わかりずらいですね、、。
追加されていく要素は、今後も増えていく予定です。
重ねの数を初期値で決めずに、追加される要素によって個々に増えていくという設定は難しい
でしょうか。 >>146
リストがお好みなら
> dat <- data.frame(rowA=c(3, 2, 1, 3, 1), colA=c(5, 7, 4, 5, 4), coubA=c(0.3, -0.3, 0, 0.4, 0.3)) #1
> dat2 <- dat[dat$coubA!=0] #2
> matA <- lapply(1:5, function(i) lapply(1:10, function(j) NULL))
> for(i in 1:nrow(dat2)) {
+ v <- dat2[i,]
+ matA[[v$rowA]][[v$colA]] <- c(matA[[v$rowA]][[v$colA]], v$coubA)
+ }
> matA[[2]][[7]]
[1] -0.3
> matA[[3]][[5]]
[1] 0.3 0.4
> matA[[1]][[2]]
NULL
#1 データはデータフレームが分かり易いかと思ってそうしたけど、ベクタでもマトリクスでも
#2 先にcoubA==0を除いたけど後から条件分岐でも良い。
#3 どうも俺が書くと美しくない...( ´・ω・`) >>145
ダメに決まってるじゃん。
質問者の要件を良く読めよ。
146 > 重ねの数を初期値で決めずに、追加される要素によって個々に増えていくという設定
どうしても初期値があるとダメなら、
144 > 要素がlistの行列を作るという手
なんだけど(または >>147さんの方法)、
10000とか10000000000000000とか十分に大きな値を初期値に出来ないの?
>>143
はいそうです。実際には、Emacsの中でRを起動する訳だけど、
ターミナルというか、シェルから起動するのと概念的に同じです。
ソフトウェアの起動には2つに大別できて、
(1) ランチャーメニューから起動→ファイルを読み込む
(2) ファイルのあるディレクトリまで移動してファイルを開く=ソフトを起動する
あなたは(1)の方法でRを起動し、私は(2)の方法で起動するという違い。
(2)の場合は、シェルの中で移動するわけだけど、
OS XやLinuxのシェルはbashだったり、WindowsのシェルだとExplorerだったり。
bashを使うにはターミナルが必要。 >>147
ありがとうございます。いただいたスクリプトを吟味させていただきます。
これだけ作っていただけたら、リファレンス本を元に解読して理解できるようになると思います。
ついで、、読み飛ばしてかまいません。
自分の環境では以下の行で
dat2 <- dat[dat$coubA!=0]
次のエラーが発生してそれ以降の行で実行不可になってしまったのですが、
underfined colums selected
何かの理由があるか、自分の基本的なところの無知なんでしょうね。
>>148
フォローありがとうございます。
>10000とか10000000000000000とか十分に大きな値を初期値に出来ないの?
最終的には、10000件もの行列の要素の上にデータを重ねようと思っています。
Rがどのようにメモリを扱っているかわかりませんが、初期値によってメモリを確保する
のであれば避けておきたいと思っています。 >>149
すんません。コピペの後ごにょごにょしてたらカンマを落としたようです。
dat2 <- dat[dat$coubA!=0,] >>147
ありがとうございます。
いろいろ検証させていただいています。
もう完璧ですね。Rに慣れていないから、と思っていたけど。
Rに慣れてもこのようなコード書けるかは自信がありません。
でもありがとうございました。 >>154
以前に、R NewsからJournalに昇格した。 本買って読み始めたんだけど、
scores <- data.frame()
scores <- edit(scores)
で、いきなりR落ちた。 すいません先の>>147のスクリプトの下の文なのですが1行で表すことは可能でしょうか。
あるアプリから、この文をRに渡したいのですが。1構文1行じゃないといけないらしくて。
単純に改行を削るだけではRでエラーを返してしまいます。
> for(i in 1:nrow(dat2)) {
+ v <- dat2[i,]
+ matA[[v$rowA]][[v$colA]] <- c(matA[[v$rowA]][[v$colA]], v$coubA)
+ } >>157
よく分からないけど、1行なら
for(i in 1:nrow(dat2)){v <- dat2[i,]; matA[[v$rowA]][[v$colA]] <- c(matA[[v$rowA]][[v$colA]], v$coubA)}
だけど >>158
セミコロンが構文の区切りなのですね。
うまく動きました。ありがとうございました。 >>159
まじで入門書を一度通読した方がよいと思う。 分割表からロジスチック回帰で使うようなデータフレームを作成する方法ってありますか? >>161
そんなオナニー質問で、本気で助言をもらえると思ってるの? >>163
>>161本人か?
本人なら、分かるように質問し直せよ。
それとも、あんたは、
1. 先日拾った木材から寝室で使うような家具を作成する方法はありますか?
2. 朝摘みした野菜から夕食に出せるような食事を作成する方法はありますか?
3. 数字を使って数学のテストに出題するような問題を作成する方法ありますか?
という質問に対して、質問者が期待する回答を与えられるのか? 初心者には初心者に分かりやすく説明すればいいんだよ
お前は単に偉そうに説教したいだけだろ
2ちゃんでやっすい承認要求みたしておめでたい奴だなw こういう毎日張りつくようなものでもないスレでカリカリしてるやつは見なきゃいいと思うんだけど
説明したいやつが説明するだろうし >>165
はぁ?じゃあ、あなたは何故>>161 に答えてあげないのですか?
オナニー質問には答えようがないからでしょう?違いますか?
違うなら、あなたが助言してあげて下さい。
自分しか理解できないオナニー質問をするかしないかは、
質問者が初心者かどうかとは独立です。 不完全な質問をして申し訳ありませんでした
その後Titanicのデータとepitoolsでなんとか理解することが出来ました.
カウントデータにNA が含まれていたため,分割表から個体ベースのデータフレームに出来ないことが判明しました..
お騒がせして申し訳ありませんでした >>168
>>163が>>161じゃなかったのなら非言申し訳ない。>>165が助言する様子はないので簡単に。
Rのglm()で指定するデータフレームは、必ずしも行が症例(個人)になっている必要はない。
条件ごとにカウントしたデータフレーム(たぶん、あなたが言う分割表)のデータフレームを用いる。
例えば、
> d <- data.frame(gender=rep(c("Male","Female"),c(6,6)),
+ dept=rep(LETTERS[1:6],2),
+ yes=c(512,353,120,138,53,22,89,17,202,131,94,24),
+ no=c(313,207,205,279,138,351,19,8,391,244,299,317))
> d
gender dept yes no
1 Male A 512 313
2 Male B 353 207
[snip]
11 Female E 94 299
12 Female F 24 317
という集計したデータフレームがあったとして、ロジスティックモデルを当てはめるには
下記のようにすればOK
> m <- glm(cbind(yes,no) ~ gender * dept, family = binomial(logit), data = d)
したがって、実験研究でよくあるカテゴリカルの場合は「個体ベースのデータフレーム」を用意する必要はない。 データが多くなると、DBの利用を考えたくなりますが、
お勧めありますか。SQLiteを使っている人が多い気がしますが。 >>171
要するに、ほとんど運だということなのかね? //質問させてください。
matB <- array(dim=c(5,10,2))
matB[3,5,1]<-0.3
matB[2,7,1]<--0.3
matB[1,4,1]<-0
matB[5,4,2]<-2.5
//という3次元の配列があるとします。
//数値要素以外はNAです。
//ここから3次元目の1つ目の表の最大値を取り出したいです。
//期待する値は0.3となります。
//apply(na.omit(matB),3,max)[1]など、いろいろ考えてみましたが
//違うようです。
//どのように表記すればよいか教えてください。 >>173
> max(matB[,,1], na.rm=TRUE)
[1] 0.3 >>175
まぁ、これは初心者がはまりやすいポイントだからね。
> max(c(3, NA, 3, 3, 3))
[1] NA
> max(c(3, NA, 3, 3, 3), na.rm = TRUE)
[1] 3 >>176さん。ありがとうございます。
//>すいません、また質問させてください。
matB <- array(dim=c(5,10,2))
matB[3,5,1]<-0.1
matB[2,7,1]<-0.3
matB[1,4,1]<-0.3
//上のような3次元の配列があります。3次元目の一つ目の表には値が含まれていますが、
//二つ目の表は値が含まれておりません。
//3次元の各表に対して、値が入っているか値が入っていないかを知りたいと思います。
length(na.omit(matB[,,1]))
length(na.omit(matB[,,2]))
//では駄目でした。
//期待とする値は、入っているか入っていないかのブール値でも、
//入っている要素数の数(全部の要素がNAならば0)でも構いません。
//どうぞよろしくお願いします。 >>177
何か、このスレ、オレしか答えいない。
> for(i in seq_len(dim(matB)[3])){print(ifelse(sum(! is.na(matB[,,i])) == 0, "空でーす", "入っています"))}
[1] "入っています"
[1] "空でーす"
上記はmatB[,,1]は「入っています」、matB[,,2]は「空でーす」という意味。
forが嫌いなら、sapplyでも。
オナニー質問じゃない限りなるべく答えるけど、関数の意味は自分で調べてね。 >>178さん
同じ人でしたか。恐縮です。
もちろん関数の意味は、自分で調べます。
本当にありがとうございました。 //質問いたします。
matB <- array(dim=c(5,10,2))
matB[3,5,1]<-0.3
matB[2,7,1]<--0.3
matB[1,4,1]<-0
matB[5,4,2]<-2.5
maxvol<-max(matB[,,1], na.rm=TRUE)
maxvecB<-which(matB == maxvol)
lenrowB<-length(matB[,1,1])
if(maxvecB%%lenrowB==0){rowB <- lenrowB;colB <- maxvecB%/%lenrowB}else {rowB <- maxvecB%%lenrowB; colB <- maxvecB%/%lenrowB+1}
//上記は3次元の配列のうち3次元目の一枚目の表から、最大値を求め
//その要素の行値、列値を求めるスクリプトです。以下のように返ってきます。
> rowB
[1] 3
> colB
[1] 5
//わざわざ、maxvecBの要素番号を列の総数で割り、その剰余を利用して答えをだしています。
//たまたま、maxvecBの要素番号が列順に振られているのでうまくいきましたが、行順に振られていたら
//誤った値が返ってくるかと思います。
//もうすこし、シンプルな書き方があるような気がしてなりません。
//修正できるとこがありましたら教えていただきたいと思います。
//よろしくお願いします。 >>180
> シンプルな書き方
まぁ、そうだね。
> arrayInd(which.max(matB[,,1]), dim(matB))
[,1] [,2] [,3]
[1,] 3 5 1
とか。この位置の値を確認したければ、
> matB[arrayInd(which.max(matB[,,1]), dim(matB))]
[1] 0.3
関数の意味は自分で調べてね。 ありがとうございます。いつもの同じ方でしょうか。
自分のが恥ずかしいぐらいシンプルです。
こうかけるようになれたらいいなあ。
ありがとうございました。 rpubs.com って自分でホスティングするのは無理? 最近,emacsのorg-modeのorg-babelを使って,Rの解析結果をhtmlにexportした
レポートもどきを作成して,同僚に渡すようにしてる.やってることの解説と
code blockを交互に書くことで,同僚の理解も容易になって喜んでるんだけど,
問題は,code blockの数だけReturnを押さないといけないこと.5個や10個の
code blockなら良いけど,100個以上になると指がつりそうになる.全部を一気
に実行する方法を誰か知ってますか? スレ違いならゴメン. >>185l
knitrはemacsもサポートしてるみたいだけど グラフィックに続いておらいリーからまた本でたね。何でも載ってそうなんで、まよってるんだけど誰か買ったかな? knitrは使ったことないんだけど,code blockを一気に処理できるの? どなたか条件を指定して3次元プロットをする方法を教えていただきないでしょうか?
以下のデータを3Dプロットしようとする時、modernの値が3の場合赤、2の場合白、1の場合黄色とし、x軸はLの値、y軸はAの値、z軸はBの値としたいです。
L A B modern
1 48 54 32 3
2 21 32 15 2
3 87 2 78 2
4 45 102 12 3
5 54 91 31 2
6 7 21 81 3
7 87 64 12 1 >>189
3次元プロット自体はできるよね。
色分けは、例えばscatterplot3d()を使うなら、colorに色名のベクタを与えればよいだけ。
> modern <- c(3, 2, 2 ,3, 2, 3, 1)
なら、
> cols <- c("yellow", "white", "red")
> cols[modern]
[1] "red" "white" "white" "red" "white" "red" "yellow"
とすれば、色名のベクタが出来る >>190
ありがとうございます。
3次元プロットは出来ます。
それぞれのデータ数が130ほどあるのですがこれも同じような形で解くのがよろしいのでしょうか?
質問ばかりしてしまい申し訳ないです。 > knitrは使ったことないんだけど,code blockを一気に処理できるの?
自己レスです.ox-ravel.elというのを使えば,org-modeからknitrを使えるこ
とが分かった.ttps://github.com/chasberry/orgmode-accessories
こいつでorg-modeからRhtmlを作って,それをRstudioにcompileさせるという流
れだな.複数のcode blockも一気に処理できるようだし,二度手間だけど100回
以上Return押すよりはマシなので,この方式に乗換を試してみる.初めて
knitr使ったけど,綺麗なhtmlできるのな.Rstudioちょっと見なおした.
> 186
ポイント,さんきゅ 質問させてください
Basis splineで描画したグラフの任意の数値のy軸を求めることはできませんか?(下記Basis splineのドキュメント)
ttp://stat.ethz.ch/R-manual/R-patched/library/splines/html/bs.html
通常のspline補間では下記のサイトのようにやればpredictでx軸の数を指定すれば取得できたのですが
ttp://d.hatena.ne.jp/hoxo_m/20110408/p1
Basis splineでの取得方法はないでしょうか
通常のspline補間のように指定したxの数を入力するとyを返してくれる方法が分かりません 質問があります。
環境はWindows7 32bitで、R3.0.1です。
RからC++のコードを呼びたいのですが、うまくいかないという話です。
C/C++コンパイラは、MinGW 4.8.1を入れて、RもMinGWも単体では問題無く動いています。
とりあえず、
--------------------
#include <vector>
extern "C" void test(double* a) {
std::vector<std::vector<double> > x(5);
}
--------------------
という何もしないファイルを、test.cppとして作って、Rcmd.exe SHLIB test.cppでコンパイルして、
さらに、Rから、
dyn.load("test.dll")
.C("test", arg1=as.double(c(1,2,3)))
dyn.unload("test.dll")
とかすると、問題無く実行できます。
(まあ何もしないですが。)
続きます。 続きです。
でも、上のtest.cppを
--------------------
#include <vector>
extern "C" void test(double* a) {
std::vector<std::vector<double> > x(5);
std::vector<double> y(5);
}
--------------------
と変えてコンパイルして、Rから
dyn.load("test.dll")
dyn.unload("test.dll")
と実行すると、dyn.unloadのところでR毎エラーで止まってしまいます。
エラーメッセージは
Microsoft Visual C++ Runtime Library
This application has requested the Runtime to terminate it in an
unusual way.
Please contact the application's support tem for more information.
となぜか英語で出てきます。
メモリ管理周りが怪しい気がしますが、そもそも.Cでコードを実行していなくて、dllを
ロードしてアンロードしただけでエラーが出るのもわかりません。
だれが原因がわかるかたいませんか? >>197
C++を使ったことがないので、
あまり価値のない情報だと思うが、
R 3.0.2 on Ubuntu 13.10で追試したところ、
x(5)のみのソースも、y(5)の行を足したソースも、
どちらも、エラーなし。
> dyn.load("test.so")
> .C("test", arg1=as.double(c(1,2,3)))
$arg1
[1] 1 2 3
> dyn.unload("test.so")
> 質問させてください
「data」+通し番号で150個存在するデータフレームがあるのですが
データを整形加工していくうちにデータ長が0になってしまったデータフレームをデータ長が1以上残っているものでリネームして通し番号を詰めていきたいのですが
地道に調べてやっていくしかないでしょうか
具体的には
data002がnrow(data002)=0の時、次にnrowでデータ長を調べて0じゃないものがdata003の時
nrow(data003)>0の時data002<-data003
data004とdata005のデータ長が0でdata006が0じゃないときはdata004<-data006といった具合に
のように代入して詰めたいです >>200
自分なら次のようにします。
操作が面倒なので、150個のデータフレームを1つのリストオブジェクトにぶち込んで、
nrow()で判定して、削除。次に、連番を振りながら、個々のデータフレームを出力。
これで少なくとも見かけ上は「番号を詰めた」状態になります。
> a <- list(data002 = data.frame(x=1:10), data003 = data.frame(), data004 = data.frame(x=1:10))
簡単のために3つのデータフレームからなるリストで説明すると、
リストaの2番目の要素であるデータフレームの行が空になった状態。
> i <- sapply(a, function(x){nrow(x) != 0})
> a.truncated <- a[i]
これで、nrow()が0のデータフレームが削除されたリストができる。
Rでは、"["関数を積極的に利用した方が効率がよいと思う。
分かりやすいように2行に分けてたけど、
> a.truncated <- a[sapply(a, function(x){nrow(x) != 0})]
1行で十分。
リストから、個々のデータフレームに出力するにはassign()を使えばいい。
> for(i in seq_along(a.truncated)){assign(paste0("data", sprintf("%03d", i)), a.truncated[[i]])}
とすれば、data001, data002が出力される。 Rをq()という関数で閉じようとするとき、
「workspaceを保存しますか。」というウィンドウが表示されます。
「いいえ」と答えて、そのまま閉じる過程まで、
スクリプトで指示することができますか? >>203
さすがにこれはヘルプ見ろと叱られても仕方がないレベルでは?
?q 10日前にMacBook Pro 買って断然プログラム
モチ(マスター)ベーション
があがったよ >>205
おめでとう*\(^o^)/*
Macは本物のUNIXマシンだから
数学やるには最適
頑張ってね UNIXを個人で使ってもあんまり意味ねえだろw
UNIXの発展系Cが本物のプログラム言語だから
いろいろな意味で最適
ならわかるがw Macは邪悪なBSDと言われていて本物のUNIXじゃないよ。
パクリもののなんちゃってUNIX。 素人解説ww
OSXは正式にUNIX 03の商標を取得しているホンモノだよ。
UnixライクなOSとは別次元。
UNIX 03で個人が気軽に使えノートも有るのはMacだけ OSの開発に失敗して、ソースパクっておいて自分だけ申請して自分こそが本物だと名乗る。
まさに詐欺師。 繰り返し文わかる人いますか?
a1_1<-lm(x1_1~.,data_1)
a1_3<-lm(x1_2~.,data_1)
a1_5<-lm(x1_3~.,data_1)
:
a1_43<-lm(x1_22~.,data_1)
a1_45<-lm(x1_23~.,data_1)
a1_47<-lm(x1_24~.,data_1)
a2_1<-lm(x2-1~.,data_2)
a2_3<-lm(x2-2~.,data_2)
a2_5<-lm(x2-3~.,data_2)
:
a2_43<-lm(x2-22~.,data_2)
a2_45<-lm(x2-23~.,data_2)
a2_47<-lm(x2-24~.,data_2)
:
a12_1<-lm(x12_1~.,data_12)
a12_3<-lm(x12_2~.,data_12)
a12_5<-lm(x12_3~.,data_12)
:
a12_43<-lm(x12_22~.,data_12)
a12_45<-lm(x12_23~.,data_12)
a12_47<-lm(x12_24~.,data_12)
このようにa12までを、くり返し文を使って短く表すことは出来ますか?
参考書を見てもわからなかったので、質問しました。 >>213
> くり返し文を使って短く表す
念のために確認しますが、「繰り返し文」は必須ですか?
繰り返し文を使わずに短くするのがルール違反なら、面倒くさいんだけど。。。 反応ないけど、繰り返し文なしの一括化+マルチコア化を書いておこう。
説明を簡単にするために、デモデータをdata_1の分だけ作成。
data_2...data_12は今から説明するlapply()を入れ子にすればよい。
> data_1 <- data.frame(matrix(runif(100 * 47), 100))
> names(data_1) <- paste("x1", 1:47, sep = "_")
さて、先に式のリストを作成する。
> a <- sapply(paste0("x1_", 1:47, "~."), as.formula)
このaに対して、lmを実行すればよい。
> lapply(a, function(x){lm(x, data_1)})
ちなみに、multicoreパッケージを入れると、
> library(multicore)
> system.i lapply(a, function(x){lm(x, data_1)})
system.file system.time
> system.time(lapply(a, function(x){lm(x, data_1)}))
ユーザ システム 経過
0.398 0.001 0.399
> system.time(mclapply(a, function(x){lm(x, data_1)}))
ユーザ システム 経過
0.347 0.083 0.183
こんなに早くなる。 「> system.i lapply(a, function(x){lm(x, data_1)})
system.file system.time 」
↑ゴミが入ったorz 繰り返し分は使わなくて大丈夫です。
できました。ありがとうございました。
一括化とマルチコア化は勉強になりました。 商標とかそういうのじゃなくて、UNIXの精神を受け継いでいないよなMacは >>218
じゃあ誰がUNIXの精神を引き継いでいるんだ?
アホはMacを使いこなせないだけ
ノータリンのミュージシャンでも
Macは使えるが、ちゃんとUNIXとして
使えば偽UNIX類とは別次元の完成度だな Unixがアレだからなぁ。
マカーもずっとUnixの悪口言ってたのに
どの口でMacこそ本物のUNIXとか言ってるんだろう?
ほんとマカーは馬鹿だと思う。 windows Let's note
thinkpad
apple Mac ritena Pro
いろいろ便利だな〜 【経営戦略】ビッグデータに死ねと言われた東急 山田祥平のRe:config.sys[14/02/14]
http://anago.2ch.net/test/read.cgi/bizplus/1392377730/
Microsoftがとうとうきたかw
Power BI for Office 365でビッグデータ解析の民主化とはな アホですな。そんな意見聞いてたら捏造コピペしまくるネトウヨの思うツボです。 plot3dで濃淡を指定ってできますかね?
scatterplot3dで図を作ったのですが動かせるようにしてくれと言われたので… すいません。>>189をplot3dで濃淡表示したいのです。
ホームページを参考にして
color = rep( grey( c( length(Modern ):1 ) / length( Modern ) ) )
として
plot3d(x=l,y=a,z=b,col=color,size=8)としたら濃淡表示にはできるのですがmodernの数字と濃淡が一致しないのです…。
番号が小さいほど黒くしたいです。 >>226
濃淡(明度)と彩度と色相は独立なので、いまいち意味が分からないが、
君の言う「濃淡」とは、グレー階調のこと?
それなら、
grey(Modern / max(Modern))
とか、
grey(1 - Modern / max(Modern))
じゃないの?番号が小さい方を濃くしたいなら、前者か。
> color = rep( grey( c( length(Modern ):1 ) / length( Modern ) ) )
意味不明。特にrep()。
c( length(Modern ):1 )はc()を使う必要なし、( length(Modern ):1 ) でOK
> Modern <- sample(3, 10000000, TRUE)
> system.time(c( length(Modern ):1 ))
ユーザ システム 経過
0.154 0.052 0.359
> system.time(( length(Modern ):1 ))
ユーザ システム 経過
0.020 0.001 0.022
c()で激遅になる。 ありがとうございます。
R初心者で分厚い本とHPを参考にしながら只今奮闘中です^^;
右も左もわからない自分にとってここのサイトはとても助かります!! 連投すいません
グレー階調を行った場合一番高い数字は白になりますか? >>229
> grey(1)
[1] "#FFFFFF"
> grey(0)
[1] "#000000"
1を代入したら白ですね ありがとうございます。
なんとか白が見えるようにならないでしょうか?
背景色をかえれるかなと思ってコマンドを打ってみたのですが変わらなくて…
Modernの数値を変えたらいいのでしょうか? 背景色変えられました!
bg3dではなくbgと打ってました… >>185
Emacs に不可能はない
C-c C-v b or C-c C-v C-b org-babel-execute-buffer 質問です。optimizeでパラメーターを求めたいのですがエラーが出てしまい、出来ません。
X<-c(1,2,3,4,5,6,7,8,9,12,13,24)
T<-length(X) #データ数
q<-3 #次数
eps<-X #diff(log(X))#収益率
ty<-function(alpha,omega){
for( t in 1:T){
alpha[1]
alpha[2]
alpha[3]
omega
for( j in 1:q ){
AA <- alpha[j]*eps[t+3-j]*eps[t+3-j] + AA
A<-(log(omega+AA)^2)*(-1/2)
print(eps[abs(t+3-j)])
}
}
}
optimize(c(2,1,2,3),ty, maximum=TRUE) 目的関数がよくわからん
何を最適化したいのかな
あとoptimizeは1変数じゃなかったっけ、optimのほうがいいかも
あとAAの初期値がいるかな Aを目的関数にしてみた
X<-c(1,2,3,4,5,6,7,8,9,12,13,24)
T<-length(X) #データ数
q<-3 #次数
eps<-X #diff(log(X))#収益率
AA<-0 #initial
ty<-function(par){
for( t in 1:T){
alpha<-c(par[1],par[2],par[3])
omega<-par[4]
for( j in 1:q ){
AA <- alpha[j]*eps[t+3-j]*eps[t+3-j] + AA
A<-(log(omega+AA)^2)*(-1/2)
#print(eps[abs(t+3-j)])
return(A)
}
}
}
opt.Nelder<-optim(c(2,1,2,3),ty,control=list(fnscale=-1,maxit=200000,
trace=TRUE),method="Nelder-Mead")
opt.BFGS<-optim(c(2,1,2,3),ty,control=list(fnscale=-1,maxit=200000,
trace=TRUE),method="BFGS") >>234
>AA <- alpha[j]*eps[t+3-j]*eps[t+3-j] + AA
これはepsの長さ超えるぞ 234です。皆様ご教授ありがとうございます。
>>235
目的関数はAAです。オメガ、アルファを求めたいです。
optimで実行した際にエラーが出てしまい、optimizeで実行しろと表示されてしまったため、optimizeを使っています。
やりたい事は、ARCHモデルの対数尤度関数を表示したく、練習として3次のARCHモデルの対数尤度関数に近いものを作りました。
>>234
確かにepsの長さが超えてますね。ご指摘ありがとうございます。
自己回帰なので過去の値に戻りたいのですが...勉強します。 受験勉強の合間に
息抜きで作業してるとMacBook Pro13インチが小さく感じるな・・・
15インチかiMac 2□インチが必要な気が・・・ 質問です。
optim関数を実行した際に、「初期パラメータで関数を表示出来ません」とエラーが出てしまいます。
関数の式は間違ってないと思うのですが、原因がわからないため、ご教授お願いいたします。
コードはこちらです。
sai <- function(x)
{
T<-length(x); q<-3; eps<-diff(log(x))
ts.plot(eps)
Mean <- mean(x); Var <- var(x); S = 1e-6
parm <- c(0.1,0.1*Var )
archsai<-function(par){
for( t in 2:T){
alpha<-c(par[1])
omega<-par[2]
if(t<=1){
htt<-omega
}else {
htt <- (omega+alpha[1]*eps[t-1]^2)
ht <- sqrt(htt)
A <- -(log(htt))^2*(1/2)
B <- -(((eps[t])^2)/htt)*(1/2)
ln <- A+B
}
}
return(ln)
}
optim(parm,archsai,control = list(fnscale=-1) )
} >>244
この前の人かな?xは前のXでいいのかな?
>B <- -(((eps[t])^2)/htt)*(1/2)
ここt-1じゃないのか >>245
そうです。236の際はお世話になりました。
xは前のXで大丈夫です。
ありがとうございます。無事に出来ました。 >>246
そうかそうか。一応言っておくけどhttが負になってsqrt()でwarnings()出てるよ
何か制約条件があれば追加したほうがいいかな >>248
ご丁寧にありがとうございます。
条件つける事で無事解決しました。 明日の16時39分頃に気をつけて下さい。
日本にも世界にも巨大地震が起きませんように。
皆さんも一緒に祈って下さい。
太陽フレアのXが発生しました。
太陽黒点数の100越えが24日間継続しているようです。 library(foreign)
yield <- read.dta("http://www.stata-press.com/data/r12/yield.dta")
tx <- with(yield, interaction(fertilizer, irrigation))
amod <- aov(yield ~ tx, data=yield)
library(agricolae)
HSD.test(amod, "tx", group=TRUE)
これをちゃんと動作させることって出来ますか?結果が出てきません。どこかミスしているんでしょうか?
ちなみにyield.dtaは表です。 >>251
動作しないとは具体的にどういうこと?
> HSD.test(amod, "tx", group=TRUE, console = TRUE)
Study: amod ~ "tx"
HSD Test for yield
Mean Square Error: 24.93463
tx, means
yield std r Min Max
1.0 36.91257 5.335857 20 25.54710 46.60105
[snip]
5.1 44.55313 4.663802 20 31.20605 51.55704
alpha: 0.05 ; Df Error: 190
Critical Value of Studentized Range: 4.527912
Honestly Significant Difference: 5.055736
Means with the same letter are not significantly different.
Groups, Treatments and means
a 2.1 51.18
ab 4.1 50.75
[snip] pre_vecB<- c(1,2,3,4,0)
#pre_vecB<- c(0,0)
out_vecB<-mean(pre_vecB[pre_vecB!=0])
0があれば、0を除いて平均を求める。
0しかなければ、NAを返す。(NAN)でない。
というスクリプトを書きたいのですが、スマートな書き方ありますでしょうか? >>253
スマートかどうか分からんが、自分ならこうする。
ifelse(is.nan(a <- mean(pre_vecB[pre_vecB != 0])), NA, a) >>252
ありがとうございます。結果が表示されるようになりました。ってconsole=TRUEが抜けてただけでした。
申し訳ありませんでした。R初心者にも門戸を開いて頂きありがとうございました。
私は分散分析、回帰分析がRで出来るようになれればなーと思っているところです。
SPSSからの移行です。頑張って精進します。 >>254
ありがとうございました。参考にさせてください。 均一分散の仮定をせずにWhiteの推定量で回帰するにはどうしたらいいの?
普通にlmじゃ無理? >>257
> RSiteSearch("heteroscedasticity white")
これでcarパッケージのhccm関数やrmsパッケージのrobcov関数にたどり着くよ > x<- seq(1,20,2)
> x
[1] 1 3 5 7 9 11 13 15 17 19
こういったベクトルがあって、このベクトルの後ろからN個の要素
を抜き出したいです。
Nが4なら
13 15 17 19
と返したいです。どのように書けばよろしいでしょうか? >>260
ありがとうございます。そのまんまの関数ですね。
知らなかった。 0が含まれれば0を除外して平均を求める。0しかなければNAを返す。
というサンプルです。
これを実際に運用してみると、単に平均を求めるスクリプトに比べ大変時間が
掛かることに気づきました。
webで調べてみると、ifelse文を使うと遅くなるという記事をみかけます。
同じ意味で、早く稼働するスクリプトがありましたら教えてください。
#vecA<- c(0,0,0)
vecA<- c(1,3,0)
ifelse(is.nan(a<- mean(vecA[vecA!=0])),NA,a)
ifelse(is.na(b1<-median(pre_listB[pre_listB!=0])),0,b1) あぁ、本当だねぇ。ifelseにするとifよりも遅くなるねぇ。
ifelseを提示したのは、そちらの方が分かりやすいと思ったから。
すまなかったねぇ。
> system.time(sapply(1:1000, function(x){vecA = c(1, 3, 0); ifelse(is.nan(a <- mean(vecA[vecA != 0])), NA, a)}))
ユーザ システム 経過
0.042 0.000 0.059
> system.time(sapply(1:1000, function(x){vecA = c(1, 3, 0); if(is.nan(a <- mean(vecA[vecA != 0]))){mean(a)}else{NA}}))
ユーザ システム 経過
0.023 0.000 0.029 >>263
ありがとうございます。ifelse文がわかりやすかったから大変勉強に
なりました。
実装データの量が多くてどうしたもんだかと悩んでたもので、
新たなスクリプト助かります。
自分は基本Cを書いてますが、Rの文が摩訶不思議に思えてしまいます。
system.time()の使い方も初めて知りました。ありがとうございました。 >>264
Cの人から見たらRは摩訶不思議かも知れないけど、
変態言語のPerlよりもずっとまし。 id <-c(1,2,3,4,5)
sex <-c("F","F","M","M","M")
height<- c(180,192,170,175,180)
weight<- c(50,65,60,55,70)
(MYDATA<- data.frame(ID= id, SEX= sex, HEIGHT= height))
上のようなデータフレームがあるとします。
ここでid=3の行データを以下のように変更(差し替え)したいとするとき、
ID = 3;
SEX = "F"
HEIGHT =150
WEIGHT =55
どう書けばいいでしょうか? >>266
>(MYDATA<- data.frame(ID= id, SEX= sex, HEIGHT= height))
じゃなくて、
> (MYDATA<- data.frame(ID= id, SEX= sex, HEIGHT= height, WEIGHT = weight))
だよね。で、date.frameのrow向きの差し替えは、べたな方法しかないと思うよ。
どこかのパッケージに当該機能を有する便利な関数があるのかもしれないが。
> MYDATA[3, ] <- list(ID = 3, SEX = "F", HEIGHT = 150, WEIGHT = 55)
> MYDATA
ID SEX HEIGHT WEIGHT
1 1 F 180 50
2 2 F 192 65
3 3 F 150 55
4 4 M 175 55
5 5 M 180 70 気になって試行錯誤をしたら、順番が正しければ変数名は省略できるようだ。
> MYDATA[3, ] <- list(3, "F", 150, 55)
ただし、変数名があってもなくても、順番を間違えると、期待通りの結果を得られないから要注意。
また、変更箇所が多ければ、edit()を使うことを勧める。
うちは、
> Sys.getenv("EDITOR")
[1] "vi"
だけど、使い慣れたテキストエディタを設定しておいた方がよいだろう。
viのキーバインドを知らなかったら、混乱すると思う。 >>267
ありがとうございます。WEIGHT忘れてました。
list()と、MYDATA[,]でデータフレームのリスト要素を変更できるの
ですね。
これを使えば、変更(差し替え)だけでなく、列を追加するのにも
同じやり方なので便利ですね。
edit()の使い方もありがとうございました。 >>269
お役に立ったようで、どうも。
行(row)や列(col)の追加は、もっと簡単でrbind()やcbind()を使います。
列の場合は
MYDATA$新変数 <- runif(5)
とかでも、MYDATAデータフレームの中に新しく「新変数」が作成されます。
# RjpwikiのQ&Aで質問が放置されていたので回答したけど、
# 河童さんはやっぱりggplotが嫌いなんだな。 普通のプログラムでは、0割するとクラッシュしてしまうから、
事前に0割を避ける条件文を作らなくてはいけないんだけど。
Rでは、Infが返ってくるだけなのだから、(クラッシュしない)
答を求めて、Infが出たときに対応の処理をさせてもいいですよね。
プログラムとして0割に対して特に対応しなくてもいいですかね。 >>271
そんなのプログラムによる話で、一般化できない。 >>271
まともな統計ソフトならみな対応してるよ Excelは表計算ソフトでしょ。
アドインは発注品だし、マイクロソフトは統計ソフト作っているわけじゃないし。
アドインの酷さは検索すれば出てくるよ。 河童さんは関西人だったのか。
東京の人はチャーリー浜なんて知らないよね。 Mac版だと--interactiveという起動オプションがありますが、
Windows版だとこれではなく、変わりに--essという起動オプションがあります
この2つのオプションの挙動に何か違いはありますか?
VimShellの:VemShellInteractiveで呼んでいるのですが、現状違いはないように
思えて、オプション名が違う理由がよくわかりません オプションが名が違うのは別のオプションだからです。以上。 >>278
>VimShell
初めて聞いた。便利そうだけど、所詮、ESSには勝てないと思う マルチタスク学習やりたいんだけどパッケージありませんか?
月曜日までに必要なのでお願いしますね >>281
スルー検定は全員合格か。素晴らしい。
ExtraTrees法なら、extraTreesパッケージかな。 writewebGLで保存した図をパワーポイントに図として乗せたいのですが動かせる形でパワーポイント上に図として乗せるにはどうすればいいでしょうか? Livewebってやつのpptアドインがあるみたいだけど上手く行かんな グラフをアスキーアートで書くとか
フレームバッファに書くとか
できますか? ThreeWayパッケージのT3って三相因子分析のことなのでしょうか? >>286
何でマニュアルを読まないの?
T3: Interactive Tucker3 analysis
Description: Detects the underlying structure of a three-way array according to the Tucker3 (T3) model.
とりあえず、下記を読んだら?
P. Giordani, H.A.L. Kiers, M.A. Del Ferraro (2014). Three-way component analysis using the R
package ThreeWay. Journal of Statistical Software 57(7):1–23.
L.R Tucker (1966). Some mathematical notes on three-mode factor analysis.
Psychometrika 31:279–311 ありがとうございます。
PCAUSP(超行列の主成分分析?)でcomponentの数の決定を行うと思うのですがここでのcomponentはそれぞれのモード?の因子数を選択しているのでしょうか?
よろしくお願いします。 なぜにアスキーアートにこだわるのか分からないけど
出せるかどうかということならあなたがそういう関数を自作すれば出せる
現状でそういう機能を持ったライブラリが存在するかということなら恐らく存在しない
理由はアスキーアートでは現実的な精度のグラフを書くことが難しいから csoundっていうソフトでは出せますよ?
そのソフトが使っているライブラリーわかりますか? ここはRのスレだからなぁ
そのソフトのスレに行って聞くといいんじゃないかなー >>289
LaTeX用に出力するときはpdfだけど、
普段使いには、X11()かquartz()でしょ。
なぜ、いちいち全てをpdfに出力しなくてはならないのだ。
>>290,292,294
aalibを入れて、Rから呼び出せばよいのでは?
色つきならlibcacaで。
仕事なら(対価を支払ってくれるなら)、
ここにデモコードを貼るけど、
そうではないなら自分で頑張れ。 >>33
これですが、自己解決しました。
setwd(readline())
パスコピペ
で、できます >>292
linux なら
ldd `which csound`
でリンクしてるダイナミックライブラリの一覧表示できるよ。 >>299
そいつに触るなよ。
何を助言しても意味をなさないよ。 質問させてください。
Rにはすでにdatasetsが入っていて、すぐ解析出来ると聞いています。
いくつか試したいのですが、datasetsの名前や内容を紹介しているサイトはあっても、属性や変数の数などを記載しているサイトが見つかりません。
もしくは、datasetsの属性などを一覧表示できるコードがあると助かるのですが…
どなたかご助力いただけませんでしょうか? >>302
R datasets
でネット検索するのが良いのでは?
datasetsパッケージのなかにはいってるものの一覧
http://stat.ethz.ch/R-manual/R-patched/library/datasets/html/00Index.html
クリックすればデータの素性は英語だけど説明あるよ。
サイズはdimとかNROWとかNCOLとかheadとかを使えば簡単に調べれるよ。
datasetsのなかにはいってるものの一覧をループでまわしてこれらの関数をつかって調べたいものを表にするのは簡単だと思います。
だれかがまとめて表にしてくれてそうだから上の検索キーワードでもっと探したらありそう。 >>303
丁寧にありがとう!
2chに書き込むの初めてだったから、きついこと言われると思ってヒヤヒヤしてたよ
原始的だけどdatasetsの名前をベクトルとして作って、headとかdimとかを使ってみる
R始めたばっかで右往左往しとるけど、先が見えてきて良かった >>304
なんとか自動化出来ないかと思いまして…
一個一個手入力でもいいんですが、もしかしたらスマートな方法があるかと思い質問していまいました。すみません。 なにをどう自動化したいのかイマイチつかめないけどデータセット自体の説明なら
ヘルプをデータセット名で検索すれば項目の説明とか出てくるよという意味ですよ >>307 さんを擁護したげよう。
俺が上の検索方法を書いたんだけど
あの画面ってヘルプ画面だし。
help.start()
でヘルプを起動するとブラウザがたちあがる。
パッケージにdatasetsがあるなら、パッケージを選択して datasets をみると
ほぼ同じの画面になる。(バージョンが異なってたら差があるかも。) お騒がせしてしまったようですみません。50個ほどのdatasetsについて、headやnrowとかを使ってdatasets名を手入力して調べてました。
str(AirPassengers),str(BJsales),...,
nrow(AirPassengers),str(BJsales),...
さすがにこれを全てのdatasetsについてやるのはしんどいので…
datasets名の手入力をなくす方法を模索してたわけですが…
どうも下記サイトに答えがあったようです。\\(.*\\)といった呪文があって、理解するのには時間かかりそうですがもうちょっと調べてみます。
http://qiita.com/wakuteka/items/c4e341637c6ae77b4ead すみません。誤植がありました。
お騒がせしてしまったようですみません。50個ほどのdatasetsについて、headやnrowとかを使ってdatasets名を手入力して調べてました。
str(AirPassengers),str(BJsales),...,
nrow(AirPassengers),nrow(BJsales),...
さすがにこれを全てのdatasetsについてやるのはしんどいので…
datasets名の手入力をなくす方法を模索してたわけですが…
どうも下記サイトに答えがあったようです。\\(.*\\)といった呪文があって、理解するのには時間かかりそうですがもうちょっと調べてみます。
http://qiita.com/wakuteka/items/c4e341637c6ae77b4ead >>310
いいこと教えてくれてありがとう。
Itemをstrsplitで" "で区切って1番目の要素を名前にして
pasteとparseと命令を作成してevalしてやれば半自動で命令実行できる。
他の方法としては、csvファイルで保存してもっとテキスト処理が得意なRubyとかPerlとかPythonで処理して
Rで実行できる命令に整形するとか。
for ループでまわすと自動で str(..) NROW(...)を実行できるよ。
strじゃなくてcolnamesでデータの名前を取得した方が良いかも。 >>310
正規表現を「呪文」と表現すると言うことはITの基本的な知識が全くないに近い。
Rを使うのはこの先かなり大変かも。
学生なら情報処理入門のような講義を受けた方がよいかも。 ご指摘の通り学生です。生物系の専攻ですが研究で必要になりました。
ひとまず基本情報技術者試験の本を見ながら知識を身につけてみます。 情報系の講義ははっきり言って無駄だ。
俺の経験からすると。
Youtubeのチュートリアルとか本家のサイトとか
正規表現なら「正規表現 入門」とか「正規表現 最速マスター」とかでヒットしたサイトで勉強した方がよい。
大学の講義って自分のペースにあってないし終るまで半年とかかかるし効率悪すぎる。 よっぽど評判良いなら受講しても良いとは思うけど
先生とか内容によるから。
Rの講座とかあるなら受けてみる価値はあるかもしれないけど。
正規表現って理系の研究室あまり重視してないっぽいしな
数値計算とかを重視してそう。
情報の基礎講座うけてうんざりした記憶がある。 重視してないもなにも、適当にマニュアル読んで分からないなら死ねっていう扱いなだけだろ
当然そうだわな マニュアルなんぞ
必要箇所以外読まんだろ。
機能確認したら俺の環境だとhelp.start()でブラウザたちあげて
datasetsのhtmlページみれなくなってた。
これって異常? >>318
異常だよ。
> library(help = "datasets")
はちゃんと出力される? >>319
回答ありがとう。
library(help = "datasets")
は表示されるけど
help.start() してパッケージのdatasetsをみると以下の
文字がブラウザに表示されてる。
No package index found for package datasets
なんでだろ?
ローカルに install.packages()で入れたパッケージのヘルプは見れるんだけどな。
root権限でインストールしたパッケージのヘルプが見れなくなってる。
baseパッケージヘルプもブラウザでみれない。
library(help=base)
はちゃんと表示されるんだけど。
設定がちゃんとできてないのかな? 原因わかりました。
パッケージを入れないとそれらのパッケージのhtmlファイルがはいってないみたい。
Debian Linuxをつかってるんだけど。
r-base-html
ってパッケージを入れたら多分表示される。 いま入れてみたそのパッケージ。
ちゃんと表示されるようになりました。
いつもネット検索して調べてたから気付かなかった。 Rcmdrの使い方について分かりやすく解説されたサイトや成書はありますか? >>323
群馬大学の大学院の研究室のサイトにあったよ
教授の名前忘れてもうた!・ >>323
「「R」 Commander ハンドブック」は? ちょっと古いけど
>>324
群馬大学なら青木先生だと思うけど Rcmdrなんて使うくらいならJSTATなり市販ソフト使えよ
Rは、中身わかんないけどとにかく結果だけ欲しい、って人向けじゃない >>327
いやいや、誰もwelcomeだよ。
使いたい人が使えばいい。その自由がOSSのよさだよ。
中身は分からないけどとにかく「無料で」結果だけが欲しい人であっても。
Rcmdrを使いたい人は、Rcmdrを入り口にして、普通のRコンソールを使うようになればいい。 >>330
馬鹿が他人をタダ働きさせようとするブログにしか見えない。 dはデータフレームで、1列目(V1)にクラスを表わす文字列、他の列はその特徴量が入ってます
library(kernlab)で読み込んだ状態です
> set.seed(0)
> ksvm(V1~.,d) (ここがksvm(d$V1~.,d)も同じ)
と
> set.seed(0)
> ksvm(d[,1]~.,d)
で結果が変わります。下の方は誤分類率0%となり不自然?で、正しいのは上のV1を使うほうなのでしょうが、なぜ結果が変わるのかがわかりません。
どなたか詳しい方教えてください
> str(d)
'data.frame': 512 obs. of 3 variables:
$ V1: Factor w/ 4 levels "a","b","c","d": 1 1 1 1 1 1 1 1 1 1 ...
$ V2: num 0 0 0 0 0 0 0 0 0 0 ...
$ V3: num 0 0 0 0 0 0 0 0 0 0 ... kernlabは知らないけどlm()だと正しくformulaを渡せないね。
> formula(lm(V1 ~ ., d))
V1 ~ V2 + V3
> formula(lm(d$V1 ~ ., d))
d$V1 ~ V2 + V3
> formula(lm(d[,1] ~ ., d))
d[, 1] ~ V1 + V2 + V3
同じようなことになってるんじゃない? >>333
formulaって関数は使えなくて実際にやってみられてないんですけど
その「V1 ~ V2 + V3」というのは、「クラスV2、V3を使って(dから)V1を予測しよう」という意味で、それをformulaに渡せているということですかね
(ttp://d.hatena.ne.jp/araili/20100728/1280313431)
d[,1]~.でダメだったのは、d[,1]という定数を指定したために変数からV1を除外できていない(V1も予測するために使う変数として考えられていた)
予測する対象はd[,1]にV1読んだのと同様に順番・値がそろっていて、分類を予測するときはクラスそのものであるV1を使うので、誤分類率0%となってるわけですか
文が長くなってすみません。結構考えてたんですが、質問してみてよかったです。同時に、予兆はあったのに情けないです。
答えていただきありがとうございました。 ThreeWayパッケージのCP関数を実行した場合寄与率に当たる個所はどこになるのでしょうか。
よろしくお願いいたします。 連投すいません。
PCA of MEANを実行した際に固有値とfitが出てきたのでfitが累積寄与率になるのではないかと解釈しております。
この解釈で良いのでしょうか。
よろしくお願いいたします。 質問させてください。
例えば、100×100の行列のデータがあったとして、11から40列の各行の数字を掛け算した
1×100の行列を作成するにはどのように記述すれば宜しいでしょうか。 apply(A[,11:40],1,prod)
これでダメかな >>338さん
ありがとうございました!
もう一つ質問なのですが、文字列を含むcsvファイルを読み込みました。
数字しか入っていない列も文字列として認識されてしまっているのですが、
数字しか入っていない列を切り取って、これを数字形式に変換するにはどうすればよいでしょうか。 as.numeric(a$b)
でどうかしらん?
あとはリード.シーエスヴィーのオプションをちゃんとしていする方法もあるわよん >>340さん
ありがとうございます。
が、初心者なので具体的にどうすればよいかまだ分かりません。
例えばread.csvのオプションは銅のように設定すればよいのでしょうか。 >>339
>数字しか入っていない列も文字列として認識され
数字以外のものが混入しているパターンとエスパー
例えば、半角空白は文字であって数字ではない。
表計算ソフトじゃ無くてテキストエディタでcsvの中を確認しては? 追記。
例えば、
$ echo -e "x1,x2¥n11,A¥n22,B¥n' ',C¥n33,D" > test.csv
$ cat test.csv
x1,x2
11,A
22,B
' ',C
33,D
というcsvファイルがあったとして、
> read.csv("test.csv")
x1 x2
1 11 A
2 22 B
3 ' ' C
4 33 D
> class(read.csv("test.csv")$x1)
[1] "factor"
というように、数値型にならずに因子型になる。
表計算ソフトではx1の3番目は空白なので見えない。 >>336
どうもPCA pf MEANは2相の主成分分析の様です。
CPfuncで計算されるfitにあたるものが累積寄与率にあたるものなのでしょうか? 質問です。データフレームの列名の一部を変更したいのですがどのように操作すれば宜しいでしょうか。
よろしくお願いします。 >>346
> (dat <- data.frame(x = 1:3, y = month.name[1:3], z = LETTERS[1:3]))
x y z
1 1 January A
2 2 February B
3 3 March C
というデータフレームがあったとして、
yをhogeに替えるなら、
> names(dat)[2] <- "hoge"
> dat
x hoge z
1 1 January A
2 2 February B
3 3 March C
例では1つの列名だけだが、もちろん、複数の列名を同時に替えることもできる。 >>347さん
ありがとうございます!
もう一つ質問させてください。
例えば以下のようなデータフレームがあったとします。
data1、data2、data3、・・・
下の繰り返し処理の中で、ループの中でdata1、data2、・・・のデータフレーム
を読み込みたいのですが、どのように記述すればよいのでしょうか。
#for (i in 1:5) {
}
下記のように記述したのですがうまくいきませんでした。
(pastedateにはdata1という名前のデータが入ってしまい、以前に入ってたデータは消えてしまっているようです。)
pastedate <- paste("data",i,", sep = "")
sumdata<-rbind(XXXXX,pastedate)
よろしくお願いします。 >>348
いまいち状況が分からない。
data1, data2, ...をファイルから読み込みたいのか、
それとも、単に既存のデータフレーム(data1, data2, ...)をrbindで連結したいのか。
後者なら、
> data1 <- data2 <- data3 <- data.frame(x = runif(3))
というデータフレームがあったとして、
> alldata <- lapply(paste0("data", 1:3), get)
という感じでリスト化して、
> Reduce(rbind, alldata)
とすれば結合できる。
他にも、いろいろな連結方法があると思うけど、
自分は、シリーズになっているデータフレームは常にリスト化して運用するので、
do.call()やReduce()で連結している。 ## S4 method for signature 'formula'
ksvm(x, data = NULL, ..., subset, na.action = na.omit, scaled = TRUE)
ってヘルプに書いてあったのに、xがformulaのときここに出てない引数を使えるんですけどどうしてですか?
一つ和訳がわからなかったのですが、...(説明:additional parameters for the low level fitting function)が関係あるんでしょうか >>350
引数「...」は下請け関数にそのまま渡す引数。
kvsm()は直接使わないけど、
下請け関数が使う引数を指定できますよという意味。
もし「...」がなければ、kvsm()が指定した引数以外を指定するとエラーになる。
例えば、
> f <- function(x = 1){return(x)}
という関数を定義して実行すると、
> f()
[1] 1
となるが、x以外を指定するとエラーになる。
> f(y = 2)
以下にエラー f(y = 2) : 使われていない引数 (y = 2)
でも「...」を追加するとエラーにならない。
> f <- function(x = 1, ...){return(x)}
> f(y = 2)
[1] 1 >>351
なるほど。
たとえば
「ksvm(x,data=y,cross=n)」→分析結果(分類法、誤分類率、n重交差確認法による誤分類率)
(「ksvm(x,data=y)」(xはyの列の内クラスを表わす列を指す)→分析結果(分類法、誤分類率))
というようにヘルプの形式に明示してないけど使えたcrossは、総称的関数ksvmからこの時呼ばれた下請け関数に渡され、使われたのですね
すっきりしましたありがとう! テキストファイルから、Rのデータフレームに格納することを考えています。
例えば2014年10月10日の血液検査のデータが
WBC 4900, RBC 470, Plt 47.3, ALT 32, CRP 7.2, AdV -, Ur.WBC 3+
このようなテキストデータで与えられたとします。
これを読み込んでデータフレームに次のように格納するにはどのようにすればよいでしょうか。
data.frame(20141010, WBC)=4900, data.frame(20141010, RBC)=470, .........
Rだけでやるより、ほかの言語で読み込んで、Rに渡す方がいいでしょうか。
その後で、そのデータフレームからopen office calcのworksheetの相当するセルに値を入れることを考えています。そこはR4Calcでできるかと考えているのですが。アドバイスお願いし >>353
お、同業者が来た。
そのままcsvとして読み込んで、データを分離しちゃえば?
2行のtmp.csvがあったとして、
> (a <- read.csv("/tmp/tmp.csv", header = FALSE))
V1 V2 V3 V4 V5 V6 V7
1 WBC 4900 RBC 470 Plt 47.3 ALT 32 CRP 7.2 AdV - Ur.WBC 3+
2 WBC 4900 RBC 470 Plt 47.3 ALT 32 CRP 7.2 AdV - Ur.WBC 3+
とdata.frameにする。変な空白が混入したので前処理。空白が混入しなければ不要。
> library(stringr)
> (b <- t(apply(a, 1, str_trim)))
V1 V2 V3 V4 V5 V6 V7
[1,] "WBC 4900" "RBC 470" "Plt 47.3" "ALT 32" "CRP 7.2" "AdV -" "Ur.WBC 3+"
[2,] "WBC 4900" "RBC 470" "Plt 47.3" "ALT 32" "CRP 7.2" "AdV -" "Ur.WBC 3+"
さて、次にstrsplit()で分離して、必要なところだけを回収する。
> sapply(apply(b, 2, strsplit, split = " "), function(x){sapply(x, function(y){y[2]})})
V1 V2 V3 V4 V5 V6 V7
[1,] "4900" "470" "47.3" "32" "7.2" "-" "3+"
[2,] "4900" "470" "47.3" "32" "7.2" "-" "3+" read.csv()のstrip.whiteオプションの存在を忘れていた。
これを指定すれば前処理は不要。
> (a <- read.csv("tmp.csv", header = FALSE, strip.white = TRUE))
V1 V2 V3 V4 V5 V6 V7
1 WBC 4900 RBC 470 Plt 47.3 ALT 32 CRP 7.2 AdV - Ur.WBC 3+
2 WBC 4900 RBC 470 Plt 47.3 ALT 32 CRP 7.2 AdV - Ur.WBC 3+
> (b <- sapply(apply(a, 2, strsplit, split = " "), function(x){sapply(x, function(y){y[2]})}))
V1 V2 V3 V4 V5 V6 V7
[1,] "4900" "470" "47.3" "32" "7.2" "-" "3+"
[2,] "4900" "470" "47.3" "32" "7.2" "-" "3+"
> b <- data.frame(b)
> names(b) <- c("WBC", "RBC", "Plt", "ALT", "CRP", "AdV", "Ur.WBC")
> b
WBC RBC Plt ALT CRP AdV Ur.WBC
1 4900 470 47.3 32 7.2 - 3+
2 4900 470 47.3 32 7.2 - 3+ 追記。いまいち意図がくみ取れないけど、
「20141010」は行名ということかな。
そして、「WBC 4900, RBC 470, Plt 47.3, ALT 32, CRP 7.2, AdV -, Ur.WBC 3+」は2014年10月10日のデータで、
次のデータ行は2014年10月11日だったりするのかな?
それなら、2014年10月10日と翌日のデータが入ったtmp.csvがあったとして、
> a <- read.csv("tmp.csv", header = FALSE, strip.white = TRUE)
> b <- sapply(apply(a, 2, strsplit, split = " "), function(x){sapply(x, function(y){y[2]})})
> b <- data.frame(b, row.names = seq(20141010, length.out = nrow(b)))
> names(b) <- c("WBC", "RBC", "Plt", "ALT", "CRP", "AdV", "Ur.WBC")
> b
WBC RBC Plt ALT CRP AdV Ur.WBC
20141010 4900 470 47.3 32 7.2 - 3+
20141011 4900 470 47.3 32 7.2 - 3+
こんな感じかな。 356さん
有難うございます。
apply関数の使い方をべんきょうしてみます。
また質問させてください。 RをUSBにインストールしたいんですが
一応あるブログを参考にインストールできたのですが
パッケージをインストールしたさいにUSBに保存されないのはどうしたらいいでしょうか? >>358
パッケージのインストール先をUSBに指定すればいいと思うよ >>359
それはどうしたら指定できますか?
パッケージをインストールすると
ダウンロードされたパッケージは、以下にあります
C:\Users\NEC-PCuser\AppData\Local\Temp\Rtmpgdg0TT\downloaded_packages
と表示されるのでUSBに保存されていないようです >>360
>それはどうしたら指定できますか?
いろいろな方法があるけど、
とりあえずは、install.pacakges()のlibオプションでインストール先を指定すればどうだい?
見たところ、Windows? USBブータブルなLinuxの話じゃ無かったの?
「あるブログ」とか話をぼかさずにちゃんと伝わるように説明しようよ。
Windowsのパスの仕組みはよく知らないけど、例えば、DとかEとかなら、
> install.packages(c("hoge", "fuga"), lib = "D:/library", dependencies = TRUE)
とか。Windowsのパス表記が間違っていたらすまん。
Windowsのパス区切り記号は変態的だから、normalizePath()とかで正常化してやる必要があるかも。
逐次的に指定するのではなく、恒久的にパッケージのインストール先をUSBにしたいなら、
$HOME/.Rprofile に「.libParhs(USB内のインストール先)」を書いておく。
install.packages()のlibオプションが省略された場合、.libPaths()の最初の要素が使われるので、
それをR起動時に設定してしまうという方法。 あるブログはこれです
http://d.hatena.ne.jp/kmgs100/20090731/1249063880
パッケージは常にUSB内のR/R-3.1.1の中に保存されるようにしたいです
パッケージだけでなくRに関するすべてのファイルをUSB内に保存できるようにしたいです >>362
install.packages()でlibを指定して、ちゃんとUSB内にインストールされるのことは確認したの?
また、そのブログには環境変数R_LIBSをちゃんと設定するように書いてあるけど。
| 環境変数R_LIBSを設定することで、追加したライブラリがUSBメモリ内に
| インストールされるようにする
ドライブレターが毎度変わるから、R起動前にカレントディレクトリを変更して、
R_LIBSをフルパスではなく相対パスにするのはさすがだ思った。
ブログに書いてある通りに、バージョンを読み替えながら設定したら、
うまくいきそうなんだけどなぁ。
私は、Winodwsユーザじゃないので、Rの話ではないWindows操作の話なら、
他の方にパス。 なにも設定してないと自分のホームディレクトリのRのディレクトリ内にパッケージがインストールされるはずだけど。
LinuxならそれをシンボリックリンクでUSBのところにして上手くUSBのところに保存されるようにするとか
mount --bind
してやれば希望の動作になりそうな気がするけどな。 >>364
仕様が変わったの?
ホームディレクトリにRのディレクトリを作らなければ、システム側にインストールされるはずだけど。
ホームディレクトリに、Rのディレクトリが存在する場合は、そちらが優先されるらしいが。
RStudioとかは、ホームディレクトリ内にRのディレクトリを勝手に掘っちゃうので迷惑する。 >>365
ユーザでinstall.package("hogehoge")
したら普通に自分のホームディレクトリにRを作ってその中にさらにディレクトリ、その中にインストールしてくるけどな。
それをmount --bind であらかじめusbの該当のディレクトリに繋げとけば楽だと思うけどな。 >>366
新ユーザを作成して試してみた。
$ R --vanilla
[snip]
> install.packages("A3")
Installing package into ‘/usr/local/lib/R/site-library’
(as ‘lib’ is unspecified)
install.packages("A3") 中で警告がありました:
'lib = "/usr/local/lib/R/site-library"' は書き込み可能ではありません
Would you like to use a personal library instead? (y/n) n
以下にエラー install.packages("A3") :
パッケージをインストール出来ませんでした
以上により、.libPaths()[1]は、
ホームディレクトリのRディレクトリではなく、
/usr/local/lib/R/site-library であることが確認できた訳だけど、
「personal libraryを作る」に y と回答すれば、
確かに勝手にディレクトリを掘りそうだな。
拒否すれば勝手なことはされないけど。
拒否せずに許可するのが「普通」であれば、>>366 は正しいな。
$HOMEを汚されたくない人 (system-wideにしたい人)は、
/usr/local/lib/R/site-libraryにsetgidが立っているから、
このグループに自分のユーザ名を追加することだね。 >>367
Linuxならシンボリックリンクはっとくとか
mount --bindしとけば汚れないよ。 >>368
「Linuxなら」とか、元質問者であるWindowsユーザを置いてけぼり はよWindows消してLinuxとかBSDにしてしまえ!
そうすれば寿命伸びるよPCの。
無理してバージョンアップで肥大化するOSのためにハードを強化する必要なくなるし。 362です
R_LIBS=の後にインストール先を入力すればいいってことですか? >>372
その方法も正しいです。
ただし、USBだと、ドライブレターがころころ変わるので、
インストール先を設定するのが難しく、
そこを乗り越える必要があります。
どうやって乗り越えるのか、その一例が、あなたが示したブログに書かれています。
念のために、申し添えますが、R_LIBSはOSの環境変数です。
(出来なくはないけど)Rの操作によって設定するものではありません。 >>372
消せるディレクトリを指定して容量の少ないパッケージをインストールしてみたら話はやいんだよ。
それでどういうディレクトリ掘られるかわかるでしょ。
あとはインストールしたいディレクトに微調整すればOK。
Linuxなら上に書いたようにmount --bindとかシンボリックリンクでいけるけど
Windowsにはそういうの無いの? R言語に興味をもったので
Debian GNU Linuxにインストールしようと思っているのですが、
軽量なバイナリラッパーなるlittlerというパッケージを見つけました。
https://packages.debian.org/ja/wheezy/littler
この解説文を読んでもいまいちよく分からない(汗)
「環境無しの R 言語」っていったい...... >>375
Rじゃないrは便利ですよ。
bcで十分と考える人には必要ないですが、
例えば、sin(10)っていくつだったけと思ったとき、
$ echo 'print(sin(10))' |r
[1] -0.5440211
とすれば、Rを起動してなくても即座に結果を得ることが出来る。
また、統計的検定なら、
A群(145/300)とB群(157/250)の比率の差を検定するとき、
わざわざRを起動しなくても、rに流し込めばその場で結果を得ることが出来る。
$ echo 'print(prop.test(c(145, 157), c(300,250)))' |r
2-sample test for equality of proportions with continuity correction
data: c(145, 157) out of c(300, 250)
X-squared = 10.9497, df = 1, p-value = 0.0009362
alternative hypothesis: two.sided
95 percent confidence interval:
-0.23071879 -0.05861454
sample estimates:
prop 1 prop 2
0.4833333 0.6280000 >>375
実行ファイルとして
/usr/bin/r
がイストールされるみたい。
シェルスクリプトのように
#!/usr/bin/r
ではじまる ファイルでRのコマンドが実行できるみたい。
俺もインストールした知らなかったありがとう。
>>376 さんの使い方も参考になった。
インストールして以下で内容物確認
dpkg -L littler
あとは
man r
読むとわかりやすいよ。 >>377
スクリプト言語として使うなら、
littlerよりも、
#!/usr/bin/Rscript
の方がよいとどこかで読んだ気がする。 3次元ヒストグラムを書いたプログラム例などありませんでしょうか? >>381
3次元というのは、3変量という意味か、2変量で立体的にしたヒストグラムか、
どんなものをイメージしているの? >>382
レスありがとうございます
2変量?でしょうか?
x,yの値があって、z軸に頻度分布、のような。
ありますでしょうか? >>383
なるほど。では、手作業でやるとこんな感じかな。自分で関数化して使って。
> d <- data.frame(x1 = rnorm(100), x2 = rnorm(100))
というデータがあったとして、
> h1 <- hist(d$x1, plot = FALSE)
> h2 <- hist(d$x2, plot = FALSE)
> c1 <- cut(d$x1, h1$breaks, right = FALSE)
> c2 <- cut(d$x2, h2$breaks, right = FALSE)
> table(c1, c2)
c2
c1 [-4,-3) [-3,-2) [-2,-1) [-1,0) [0,1) [1,2) [2,3)
[-3,-2.5) 0 0 0 0 1 0 0
[-2.5,-2) 0 0 0 1 1 1 1
[-2,-1.5) 0 0 0 1 3 1 0
[-1.5,-1) 0 1 0 2 2 0 0
[-1,-0.5) 0 0 3 4 8 2 0
[-0.5,0) 1 0 2 10 5 0 1
[0,0.5) 0 0 2 2 12 1 0
[0.5,1) 0 0 3 6 6 0 0
[1,1.5) 0 0 0 4 4 1 0
[1.5,2) 0 0 1 1 1 3 0
[2,2.5) 0 0 0 0 1 0 0
[2.5,3) 0 0 0 0 1 0 0
と2次元の度数分布表が作成できるから、scatterplot3dパッケージでプロット。
> library(scatterplot3d)
> scatterplot3d(as.data.frame(table(c1, c2)), type="h", lwd=5, pch=" ")
期待したのと違うなら、もっと具体的に説明して。 >>384
ありがとうございます。
まさに、これです。大変助かりました。
いただいたサンプル利用させていただきます。
ありがとうございました。 R 3.1.2 来た!
Win用バイナリはあるけど、MacOSX用バイナリはまだない。
Ubuntu PPAにも来ていない。Debianもまだ。 自分確認すべきだけど大きな変更あった?
便利になる機能ある?
バグフィックスがメインかな? >>387
OS XでCLIのRを使っている人はXQuartzがらみで要確認だけど、
Yosemite対応もしているみたいだし、それほど変更点はなさそう。
WindowsのR.exeは64bit固定になったみたいだが、関係ないので読み飛ばした。
個人的に注目したのはembedFonts()のformat引数の値が、
今までNULLだったけど"ps2write"に変わったことぐらい。 なんだかんだ言っている間に、OS X版バイナリが来た。
でも、Snow Leopard版とMarvericks版のみ Linux Debian Sidだとすでに3.1.2のパッケージ昨日の段階で供給されてたみたい。
今確認したら3.1.2になってた。 plot()の技術的な質問失礼します
plot(iris$Sepal.Width, iris$Sepal.Length, col=c(2,3,4)[iris$Species])
のように記述すれば質的変数で点の色分けが出来ますが、
x種はy色、と明示的に記述する方法などありますか?
(質的変数の名前順を確認して色を割り振る、最初に質的変数毎に分けておいてpointsする、などで
簡単に実現できるので絶対必要というわけではありませんが、何か簡単な書き様があるのではと気になっています) >>393
せっかく簡単に色指定できるようにRで工夫されているのに、
いちいちx種はy色とか個別に指定すると逆に面倒な気がするが、
次のようにすれば、x種はy色と指定できる。
> cols <- character(nrow(iris))
> cols <- NA
> cols[iris$Species == "setosa"] <- "orange4"
> cols[iris$Species == "versicolor"] <- "violetred"
> cols[iris$Species == "virginica"] <- "tan4"
> plot(iris$Sepal.Width, iris$Sepal.Length, col = cols) 別解として、事前に色対応のデータフレームを作成しているとすると、
次のような感じ。
> (col.table <- data.frame(Species = c("setosa", "versicolor", "virginica"), cols = c("orange4", "violetred", "tan4")))
Species cols
1 setosa orange4
2 versicolor violetred
3 virginica tan4
という対応テーブル(データフレーム)が事前にあったとして、
> iris2 <- merge(iris, col.table, x.all = TRUE)
> with(iris2, plot(Sepal.Width, Sepal.Length, col = cols)) >>394-395
レス遅くなりまして申し訳ありません
参考にさせていただきます、ありがとうございました 積分を含んだ関数のフィッティングってできますか?
例えば、
f(x) = ∫^1_x {a*t^b/√(t^2 - x^2)}dt
0<x<1
のようなやつです >>397
与えられた関数ではたぶんt^2-x^2が負になることがあるのがめんどいので変えました
できてるかな?コードが汚いのは勘弁して下さい
SS<-function(par){
a=par[1]
b=par[2]
t=par[3]
fx<-c()
for(m in 1:10){
fx<-c(fx,integrate(f,lower=1,upper=x[m],a=a,b=b,t=t)$value)
}
print(fx)
return(sum((y-fx)^2))
}
f<-function(x,a,b,t){
#if(0<x && x<1){return(0)}
#return((a*t^b)/(sqrt(t^2-x^2)))
return(a*x^b+t*log(x))
}
x<-1+2*runif(10)
y<-x+runif(10)
SS(c(1,1,1))
fx=integrate(f,lower=1,upper=12,a=1,b=0.5,t=1.2)
optim(c(1,1,1),SS) うひょー、こんなパッとできるのですか!
ありがとうございます >400
生中継のみで録画なしか。
出遅れた。残念。 optim関数を実行した時に「オブジェクトは 'double' に変換できません」というエラーが出ます。
何が原因でしょうか?
以下コード
data <- read.table("RSRF_mc150k_80kev.txt", header=FALSE, sep="\t")
f <- function(par){
b <- par[1]
c <- par[2]
d <- par[3]
l <- par[4]
f <- par[5]
g <- par[6]
h <- par[7]
m <- par[8]
V1 <- data[1]
V2 <- data[2]
w <- (-V2 + 1 - ((b*exp(-f*V1))/(1-exp(-f)) + (c*exp(-g*V1))/(1-exp(-g)) + (d*exp(-h*V1)/(1-exp(-h)) + (l*exp(-m*V1))/(1-exp(-m))))^2 )
return(w)
}
init <- c(1.611e-5, 1.468e-4, 9.19e-4, 1.48e-2, 0.0023, 0.0150, 0.0827, 0.5786)
opt <- optim(par=init, fn=f, NULL, method = "SANN")
以下にエラー optim(par = init, fn = f, NULL, method = "SANN") :
(list) オブジェクトは 'double' に変換できません optim関数は関係ない
V1、V2にデータフレームが入っているからエラーが出る、たぶん
(参考) irisを例にstr()で構造を確認してみれば、これらで構造が違うことが解る
str(iris[1])
str(iris[,1]) >>403
ありがとうございます。
エラーメッセージが変わりました。↓
optim の目的関数が 1 つではなくて 1135 個の結果を評価しています
nlsのかわりとしてoptimを使ったのですが、nlsのように連立方程式を解くというようなことはできないということでしょうか? 略
V1 <- data[,1]
V2 <- data[,2]
w <- (-V2 + 1 - ((b*exp(-f*V1))/(1-exp(-f)) + (c*exp(-g*V1))/(1-exp(-g)) + (d*exp(-h*V1)/(1-exp(-h)) + (l*exp(-m*V1))/(1-exp(-m))))^2 )
www <- sum(w^2)
return(www)
}
略
これじゃダメ? 1−100の整数を、すべて一回ずつランダムな順番で表示(発生?)させたいのですが
そのような関数はありますでしょうか >>410
全て1回ずつなら、引数sizeは省略可能だよ。 Rの入力画面が“+”になったままです。
通常の“>”にするにはどうすればいいのでしょうか。
ご教示ください。 ”STOP”をクリックして解決しました。
どうも失礼しました。 いちおう答えておくと入力が足りないというメッセージだから足りないものを補うか、
ESCキーで逃げる。 みなさんCPU何使ってますか?
わたしはintel i5 の2coreですが
nnetや深層学習で遅さを感じるように
なりました >>419
バッチとかシェルとか使って
次々作業を自動でするようにするとか
もっと高いCPU使うとか
並列処理させてみるとか。
安いんだから台数増やして対応したらどう?
俺は基本的に一番安いノートを使ってる。
昔は高いCPUとか部品とか購入してたけど
数年たつと安物に速度も容量も負けるので
バカらしくなって高級部品は買わずに
一番安い機種を購入することにしてるよ。 統計学は太兵を失い敗退し、時代遅れだが、
虚実混合実数確率集合論は、世界二十世紀最後の最難関
だったから、一読の価値あり。兵法書としても。
戦場で探せるかな。盗み読み。走り読み。 そうか?
数学の中で統計って結構役にたつよ。
特にコンピューター関係で非常に役にたってるじゃん。 Rを使ったクラスター分析についてわからないことがあるので教えて下さい。
Rコマンダーを使ってクラスター分析をウォード法、ユークリッド距離を使って行いました。
その際クラスター数を何個にするべきかクラスターの距離?を使って判断したいんですが
どのようにその距離を数値化することができますか。
JMPを使ったクラスター分析では例えば
クラスター数が1の場合、距離という項目が10.389
2の場合は10.256
3は10.132
4は9.618
5は9.578
というような形で明記されます。
この時3と4の間の距離が大きいのでクラスター数を3個にするといった判断基準を行ってきました。
これと同様のことをRを使って行いたいのですが、調べてもわかりません。
上記をする方法を教えていただきたいです。お願いします。 >>424
一般的に、
回答できない人 → Rコマンダーユーザ層
回答できる人 → 普通のRユーザ層
と思われるので、
Rコマンダーをメニューから実行したときに出現するコマンドを書いた方が
回答を得やすいと思うよ。 ネット検索しろよ
ツール名 やりたい事
でネット検索したら簡単に調べれるだろ。
osoパッケージ入れてキーワード検索するのも良いかも。 30名限定!銀座で飲みながら「人生でやりたいことを諦めない」パラレルキャリアについて語り合うイベントを開催!
ってのがヒットした >>427
どんだけ検索ヘタッピなんだよ。
メンドクセーやつ。
もっと馬鹿向けのツールにかえた方が良いよ。 >>429
自分で使えないようなツールつかうなよ。
検索すらできないおバカ! 卒論シーズンになると子供が湧くなw
罵倒している子供も、質問している子供と50歩100歩
>>424
クラスターの個数を決めるなら、例えばNbClustパッケージを使うとか
ウォード法、ユークリッド距離を使った例
> data <- iris[,-c(5)]
> library(NbClust)
> res <- NbClust(data, diss=NULL, distance = "euclidean", min.nc=2, max.nc=6,
+ method = "ward.D2", index = "kl")
All 150 observations were used.
> print(res)
$All.index
2 3 4 5 6
5.6522 4.1503 1.5906 1.5679 2.5556
$Best.nc
Number_clusters Value_Index
2.0000 5.6522
$Best.partition
[1] 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
[38] 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
[75] 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
[112] 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
[149] 2 2 >>420
ご助言ありがとう
高いスペックのPC買うより
安いのを複数で並列にしますわ 424です
自分なりに調べてみたんですがやはりわからないです
どうやら私が知りたいのはクラスター分析の履歴で、距離の結合過程のようです
すみませんがどなたか教えてください、困ってます
>431さんのはたぶん距離の結合過程ではないようです、でもありがとうございました
>425さん
コマンドで表すと
HClust.1 <- hclust(dist(model.matrix(~-1 +j+k+n+m, A)) , method= "ward")
plot(HClust.1, main= "Cluster Dendrogram for Solution HClust.1", xlab= "Observation Number in Data Set A", sub="Method=ward; Distance=euclidian")
です >>433
昔ネット検索したときに
距離の関数を自作すれば計算してくれるパッケージあったけどな
ちゃんと検索しろよ
面倒くさくなって検索ちゃんとしとらんだろ
自分でプログラム作れないなら
検索くらいしっかりしろよ >>434
色々と検索してみたんですがダメでした
検索するときに重要なキーワードとかあったら教えて下さい >>435
途中であきらめとるだろ
俺がみつけれとんだし
まず検索しなおせよ >>435
そんな手間かけずにみつけれたぞ
なんて名前のパッケージか忘れたけど >>436
distではないようです
>>437
>>438
この1ヶ月検索してみたのですがダメでした
ヒントだけでも教えて下さいお願いします >>439
OSOパッケージつかうと検索はしやすい 424です
いやもう限界です
もう自力では無理です
教えてくださいお願いします >>441
検索すらまともにできんのかよ
この馬鹿は
検索は忍耐力だけ
耐えんかい! >>442
忍耐力というか
もう検索するキーワードがなくてどうしようもないんです
お願いですから教えて下さい >>424
Rではできないと思う
おれはあきらめて、Rubyでプログラムを作ったよ
プログラミングは得意だと思っていたが二か月かかった
ネットで探しても、参考になるようなソースは見つからなかったから
かなり大変だった
健闘を祈る! RubyGemsが特別CRANより優れている訳でもないから
Rubyで書ける計算はRでも書けると思うのだが? すみません、多数の住所を巡回しなきゃならないんですが、
このソフトでTSPを解けるんですかね?
住所を緯度経度に変換するところまではなんとかやりましたが、
最短で廻るルートがさっぱりで...
よろしくお願いします 違うところに書き込んでたようなので移動しました
453 :132人目の素数さん:2015/03/25(水) 11:42:34.89 ID:XFYYJvdYK
R初心者です
nls.lmの使い方を教えてください
いままでフィッティングはエクセルでやってましたが
誤差評価をつけろと言われてRを始めたところ全然分からなくて困っています
時間に対して観測値が変化するのを普通の式でフィッティングするのはできるのですが
一定の時間の後に式が変化するときの場合分けはどうしたらよいのでしょうか?
具体的に言うと、1回投与に対するフィッティングはできるけど
数回に分けて投与する場合のフィッティングが分かりません
推定値をgetPred(parS, t)という関数で求めるとして、
getPred関数中のif文でtの値による場合分けをして
サブルーチンを呼び出そうと思ったのですが
nls.lm中にはtの値はベクトルで渡されていて
nls.lmが最少化する目的関数の計算中に変化させているt[?]の状態で
サブルーチンに渡すことができず
単純にtをgetPredに渡してif(t<1)とかやると
「条件の長さが2以上なので・・・」
というエラーメッセージがでてしまいます
うまく場合分けする方法はあるでしょうか
454 :453:2015/03/25(水) 11:49:25.36 ID:XFYYJvdYK
補足です
if文ではなく、
getPredの中に場合分けに対応した複数の式を書いて
それぞれの頭に
ceiling(min(1,max(0,t-1)))*
のような0か1になる場合分けの式を書き込んでもnls.lmは分けてくれませんでした >>451
数千種のパッケージがある中、使用パッケージの前置きなしに、突然nls.lmと言われても、
ほぼ誰も答えられないと思うぞ。minpack.lmなんて初めて聞いた。有名なのか?
MWE (Minimal Working Example)の提示もなしに、言葉だけの説明だと、検証して助言する気にもなれない。
> day <- 1:100
> y <- 2 * day + 3
> yeps <- y + rnorm(length(y), sd = 2)
> dat <- data.frame(day, yeps)
1日から50日はyeps ~ a + b * day
51日から100日は yeps ~ a + b * I(day^2)だとすると、
> nls(yeps ~ a + b * day, data = dat[dat$day < 51, ], start = list(a = 0.12345, b = 0.54321))
Nonlinear regression model
model: yeps ~ a + b * day
data: dat[dat$day < 51, ]
a b
3.01 2.00
[以下省略]
> nls(yeps ~ a + b * I(day^2), data = dat[dat$day > 50, ], start = list(a = 0.12345, b = 0.54321))
Nonlinear regression model
model: yeps ~ a + b * I(day^2)
data: dat[dat$day > 50, ]
a b
76.3125 0.0131
[以下省略]
質問の意図と全く違うなら、説明の仕方が悪い。 さっそくのお返事ありがとうございます
説明が悪くて申し訳ありません
nls.lmはnlsよりエラーが出にくいとネットで見たので
エラーの対処もなかなかできない自分にとってはそのほうがいいかと思って使ってみました
実際にはnls.lmもエラーが出てそれほど良いわけでもなさそうでした
プログラミング自体初心者なものでMWEがうまくつくれず
どうしても非常に長くなってしまうので
データの概形が分かるグラフだけを下に貼ってみました
これで分かりますでしょうか
t<-c(1:100)
pre<- c(1:100)
k1=0.3
k2=0.1
graphplot<-function(x){
for(i in 1:x){
pre[i]<-
k1/(k1-k2)*(exp(1)^(-k2*t[i])-exp(1)^(-k1*t[i]))+
ceiling(min(1,max(0,t[i]-7)))*k1/(k1-k2)*(exp(1)^(-k2*(t[i]-7))-exp(1)^(-k1*(t[i]-7)))+
ceiling(min(1,max(0,t[i]-21)))*k1/(k1-k2)*(exp(1)^(-k2*(t[i]-21))-exp(1)^(-k1*(t[i]-21)))+
ceiling(min(1,max(0,t[i]-35)))*k1/(k1-k2)*(exp(1)^(-k2*(t[i]-35))-exp(1)^(-k1*(t[i]-35)))
par(new=T)
plot(t[i],pre[i],xlim=c(0,100),ylim=c(-5,5))
}
}
graphplot(100)
続きます 続きです
変なコーディングで意味不明かもしれませんが
不規則な(0,7,21,35日目での)投与で患者さんの反応が4つ山のグラフになっているイメージです
これを、上の関数で使っている
k1/(k1-k2)*(exp(1)^(-k2*t[i])-exp(1)^(-k1*t[i]))
という
直列につながった2ボックスのモデルでフィッティングして
患者さんの体内にあるそれぞれのボックスの代謝排出速度定数k1,k2を得ようとしています
その方法で悩んでいるところです
エクセルでパラメータの誤差を得る方法も分からなくてRを試していました>>453
とりあえず1回投与のような単純なものはRのnlsでパラメータと誤差を得ることができました
エクセルでパラメータの誤差を簡単に得る方法はどこかに出てますでしょうか?
探し方が悪いのかなかなか見つかりません・・・ y軸の指定をミスってグラフがつぶれ気味になってしまいました
すみません あん?結局目的は達成できてるの?何ができてないの? 目的はパラメータk1, k2を誤差つきで得ることです
>>454のようなデータ(例えばこれにランダムな誤差を与えたもの)を
>>455のような2ボックスモデルで解析してk1,k2を決定したいのですが
nlsやnls.lmでうまくできなくて困っています
>>454のデータは4回投覧^なので4つの山の合成のような形になっています
>>454のモデルはそのままだと1つの山なので
そのままnlsなどでに突っ込んでもフィッティングできません
なにか方法はないでしょうか とりあえず >>454をrewriteしてみた
t <- 1:100; n <- max(t)
k1 <- 0.3; k2 <- 0.1
x <- x0 <- k1/(k1-k2)*(exp(-k2*t)-exp(-k1*t))
x[(1 + 7):n] <- x[(1 + 7):n] + x0[1:(n - 7)]
x[(1 + 21):n] <- x[(1 + 21):n] + x0[1:(n - 21)]
x[(1 + 35):n] <- x[(1 + 35):n] + x0[1:(n - 35)]
plot(t, x, type = "l")
で、区間毎に別々にk1, k2を求めて標準誤差または信頼区間を計算するのはだめで、
k1とk2が統合されなければならないってこと? k1,k2は生理的なものなので、それぞれが常に一定である必要があります
例えると、ある薬品が血中に投与された時の
k1は薬物の代謝分解速度定数、k2は腎臓からの排出速度定数で
これらが一定な状態の被験者に
薬物を4回投与した時のデータが>>454のグラフになります
つまり、
知りたいのは人間の体の代謝能力の方で
ある時間における代謝の状態ではないということです
なかなかうまく説明できなくてすみません 例えと書きましたが、
実際に排出速度定数k1,k2の直列2コンパートメントの微分方程式を解いたものが
k1/(k1-k2)*(exp(-k2*t)-exp(-k1*t)) です
>>459のように短く書けるのですね
勉強になります。ありがとうございます 例えば、こんな感じなのか。
t <- 1:100; n <- max(t)
k1 <- 0.3; k2 <- 0.1
x <- x0 <- k1/(k1-k2)*(exp(-k2*t)-exp(-k1*t))
x[(1 + 7):n] <- x[(1 + 7):n] + x0[1:(n - 7)]
x[(1 + 21):n] <- x[(1 + 21):n] + x0[1:(n - 21)]
x[(1 + 35):n] <- x[(1 + 35):n] + x0[1:(n - 35)]
s1 <- ceiling(pmin(1, pmax(0, t - 7)))
s2 <- ceiling(pmin(1, pmax(0, t - 21)))
s3 <- ceiling(pmin(1, pmax(0, t - 35)))
m1 <- nls(x ~ k1/(k1-k2)*(exp(-k2*t)-exp(-k1*t)) +
s1 * k1/(k1-k2)*(exp(-k2*(t - 7))-exp(-k1*(t - 7))) +
s2 * k1/(k1-k2)*(exp(-k2*(t - 21))-exp(-k1*(t - 21))) +
s3 * k1/(k1-k2)*(exp(-k2*(t - 35))-exp(-k1*(t - 35))),
data = data.frame(t, x, s1, s2, s3),
start = list(k1 = 0.4, k2 = 0.2),
control = list(warnOnly = TRUE))
summary(m1)
confint(m1)
confint()が計算できないみたいだけど。 ありがとうございます
nlsに与える式の中にtの値での場合分けがあってもちゃんと答えが得られるんですね
式の与え方は自分がやってうまくいかなかったときと同じようなので
tの渡し方とかその辺でなにか間違っていたのかもしれません
(式の複雑さとか、tが整数ではないとか細かい違いはたくさんありますけれど)
うまくいく例>>462を教えていただいたので
それをベースに改変すればできるはずと分かり助かりました
先が見えたのでエラーがでてもめげずにデバッグできそうです
有難うございます >>463
s1, s2, s3は、君のやり方を踏襲したけど、
t <- 1:100; n <- max(t)
s1 <- rep(0:1, c(7, n - 7))
s2 <- rep(0:1, c(21, n - 21))
s3 <- rep(0:1, c(35, n - 35))
でいいと思うぞ。 教えていただいたテンプレをベースにやったらうまく解析できました
自分でやってうまくいかなかった理由は
ceiling(min(1,max(0,t[i]-7)))*
という部分だと判明しました
投与時間t[i]は実数で欠損値もないので
なぜmin,maxがNaNを返すのかまだ理解できていませんが
とにかく、pmin,pmaxだと大丈夫で、min,maxだと
「計算結果がNaNになりました・・・」というエラーになるようです
nlsやnls.lmの使い方の問題ではなく
自分の式の書き方の問題でした
おさわがせして申し訳ありません
いろいろ教えていただいた皆様、有難うございました
>>459, >>464の書き方も勉強になりました >>465
pmin()とmin()は用途が違う。
> (a <- round(rnorm(10)) + 5)
[1] 4 6 6 5 3 5 6 2 4 4
> min(1:10, a)
[1] 1
> pmin(1:10, a)
[1] 1 2 3 4 3 5 6 2 4 4
> max(1:10, a)
[1] 10
> pmax(1:10, a)
[1] 4 6 6 5 5 6 7 8 9 10 t[i]じゃなくてtになってました。なのでpmin,pmaxですね
こまごま間違いがあるもの、というか
自分がミスが多すぎるのでしょうか・・・
うまくいったと思っても
別の被験者のデータを入れたらまたエラーになってしまいました
いまのところ5人中3人でNaNエラー
エクセルで得た推定値を入れていて初期値での推定値が測定値にはほぼ一致しているのに何故NaNエラー?
まだまだデバッグにかかりそうです・・・ 結局6人のデータのうち3人がエラーでした
測定値とエクセルの推定値をプロットして回帰すると
エラーがでなかった方でy=0.81-0.93, r2=0.97-0.99
エラーが出た方で0.84-1.15,r2=0.85-0.98
異常値があるわけでもないしデータの問題ではなさそうです
nlsに入れた式の部分をコンソールにコピーすれば
測定値にほど近い正の実数が並ぶし
なにが問題なんでしょう・・・ nlsでエラーが出るデータはnls.lmでもエラーになりました
nls.lmはエラーが出にくいという話でしたが
そういう問題じゃないところでのエラーか Mさんだとエラーが出ていしまう男性は多数、
私の数字の概念をはるかに超えている醜さ。
無限大の脂肪率で、人格障害で恋愛成就する確率は0.1の1億乗。
半径50M以上は近づかないでほしい。(証明おわり) 人間の価値は顔とコミュ力の二変数関数と良い近似を見せる 質問です
whi.e(i in 1:10)
{
p[i] = i
i = i + 1
}
print(p)
とすろとオブジェクトpがありませんというエラーが出るのですが、
pというオブジェクトが生成されてない原因は何なのでしょうか 先にp=0書いたらできて自然解決しましたすみません 統計解析言語の最新版「R 3.2.0」がリリース、Windows向けに新たにインストーラーを提供
http://codezine.jp/article/detail/8667 行列の特定の要素に任意の値を代入するにはどうすればいいですか
a[1,2]=10としてもエラーがでます
これに関してググりまくったんですがなぜか全然出てこなくて困ってます >>476
> a<- matrix(1:16,nrow=4)
> a
[,1] [,2] [,3] [,4]
[1,] 1 5 9 13
[2,] 2 6 10 14
[3,] 3 7 11 15
[4,] 4 8 12 16
> a[1,2]<- 10
エラー出ないよ。
エラーメッセージを載せたら? >>477
どうやら既存の要素でないと書き換えることができないことを知らず、
その表でいうとa[1,5]=10みたいなことをやっていて、
しっかりnrow=5で行と要素を存在させてから命令したらうまくいきました
ありがとうございました いまESS使ってるんですが、Rstudioとどっちが使いやすいでしょうか?
Rstudioに乗り換えようか迷っています 2次元形式で文字を表示させるにはどうすればいいでしょうか
cd/m^2の2乗を表示したいです >>481
2次元形式は意味不明だけど、superscript (肩付き)のことを言っているなら、
「expression r superscript」でぐぐれ >>482
ありがとうございます。
出来ました!! >>480
こっちは、どっちが使いやすいかを訊いているのですが?
お前が共存させてようが知ったことではないです。 >>484
あなたが共存させて使い比べるのが一番でしょう。
あなたにとっての使いやすさの話なんだろうから。 >>484
そのような返答は端から見ていても不快ですよ。
私はEmacsに慣れているので、ESSの方が圧倒的に使いやすいです。
RStudioとESSとどちらが使いやすいかは、人それぞれですよ。
ただ、Emacsを使ったことがない人には、RStudioを薦めています。 >>487
当然解ける。
ていうかそれは言語関係ないよ。 エクセル持って無いんだけどopenofficeのデータを
Rにコピペする方法ってある?(´・ω・`) 区切り文字が分かればできてるでしょ
ちなみにExcelはタブ区切り OpenOffice持ってないんだけど、範囲選択し、copyを選択し、
Rで
read.delim("clipboard")
とかで出来ないかな。 指定した一定の距離で
互いに離れた点の分布を生成するのって
簡単な関数ある? Rのマニュアルやらわかりやすい例題やら作れって言われた。
創薬系研究室在籍やけど、なんかいい例題ないですかね? いや万人には受けない…
データ取ってくるの一番めんどくさそう rinsideってc++にR組み込めるみたいだけど
fortranかjavaにR組み込めるパッケージ出ないのかな
作ろうっていう神とかいらっしゃらない? 3.2.0が出たことを知った今日この頃
ちな3.1.1
ここにいる皆さんは新しいバージョンが出るとすぐにアプデするの? お前R全然使えないじゃん。
ブログのコードとか結構ひどいと思うぞ >>500
Ubuntu/Debianだと、事実上自動的にアップデートされてしまうので、
そんなことは意識しない。論文を書くときに、分析したときのバージョンをチェックするぐらい。 プログラミングの非常に初歩的な質問で申し訳ないんですが、複数のcsvファイルを読み込んで特定の列を抽出して結合し、一つのマトリクスとして書き出したいのですが、どのようにプログラムを組めばいいでしょうか?
手作業でも可能な作業ですが、csvファイルの数は500あるのでプログラムを組んで時間を短縮できたらと思います。
おそらくfor文を使うのでしょうが、プログラミングを始めたばかりでどのように書けばいいのかわかりません
知恵を貸してください >>505
回答ありがとうございます
読み込みに関してはread.csvでa1-a500まで書いて読み込めてます
非効率なのは承知していますが、これからもっと勉強して効率的なコード技術を身につけたいと思います。
問題はその後、for文を使えば繰り返しを行えるとのことで
i=1
for[i in 500]{
bi <- ai[,10]
}
みたいに書いてみたのですが、当然回りませんでした。
結合はcbindを使えばいいということも調べたのですが、列抽出と結合をfor文に上手く組み込めないという現状です。 かなり汚い書き方だけど、その列の長さ(nとする)が同じなら
A<-list.files()
B<-matrix(0,n,length(A))
for(m in 1:length(A)){
temp<-read.csv(A[m],header=TRUE)
#その列の名前がxとする
B[,m]<-temp$x
}
とかでできないのかなあ >>507
>>504です
A<-list.files(pattern=".csv$")
B<-matrix(0,360,length(A))
for(m in 1:length(A)){
temp<-read.csv(A[m],header=TRUE)
B[,m]<-tenp$10
}
こんな感じでよろしいのでしょうか?列の長さは等しくないので最大のcsvのものを設定しています.
このまま回したところエラーが吐き出されてしまいました. >>509
取り出せていなかったようなので
A<-list.files(pattern=".csv$")
B<-matrix(0,360,length(A))
for(m in 1:length(A)){
temp<-read.csv(A[m],header=TRUE)
B[,m]<-tenp$name
}
こちらで回したところ,
Error in file(file, "rt") : コネクションを開くことができません
追加情報: Warning message:
In file(file, "rt") :
ファイル 'NA' を開くことができません: No such file or directory
>
とのことでした.
また,ValuesにAは表示されていますが,character(empty)となっていてcsvファイルも読み込まれていないように感じます.
私はmacでRStudioという環境ですが,Rと.csvが同一フォルダにある場合list.files()のパスは必要ないんですよね?
質問ばかりで申し訳ありませんが,後学のために教えていただけると助かります. list.files(pattern=".csv$")
ここだけ実行して目的のcsvは表示される?
指定もできるけどと思うけど指定しなかったら普通にカレントだろうねえ
まあRSTtudii使ってるなら引数は候補で出てくるしそこらへん適当にヘルプでも見て >>511
character(0)となっているということは.csvが検出されていないということですよね?
なぜでしょう… >>512
getwd()でカレントどこになってるか見える
RStusioの右下に表示されてるスペースがカレントとは限らなかったような >>513
getwd()でカレントを確認し,pathに代入して
A<-list.files(path,pattern=".csv$")
B<-matrix(0,360,length(A))
for(m in 1:length(A)){
temp<-read.csv(A[m],header=TRUE)
B[,m]<-tenp$速度name
#nameに列名
}
で回しても
Error in file(file, "rt") : コネクションを開くことができません
追加情報: Warning message:
In file(file, "rt") :
ファイル 'NA' を開くことができません: No such file or directory
Aはcsvを見つけられてないようです >>513
すいません!!カレントを正しく打ち込み直したらcsvを読み込むことができました!!
ただBの中身が全て0になってしまい
Error in make.names(col.names, unique = TRUE) :
'<95>W<8d><82><28>m)' に不正なマルチバイト文字があります
というエラーを吐き出してきました
これはどういう修正を加えれば良いでしょうか? >>515
わからん
ただ、ぐぐったら
http://app.f.m-cocolog.jp/t/typecast/1990464/1998288/93641564
こんなのが出てきた
今はcsvファイルの一列目は列の名前ですか?
そうでないならheader=FALSEにしてみてください
そのときに$でアクセスすることができなくなります。何列目か固定(m列目とする)ならtemp[,m]でいけるかな >>516
遅くまでありがとうございます.
ヘッダーの件はは自分でも調べてエンコードを以下のように変えてなんとか対処できました.
path <-XXXXX
A <- list.files(path,pattern=".csv$")
B <- matrix(0,360,length(A))
for(m in 1:length(A)){
temp<-read.csv(A[m],header=TRUE,fileEncoding = "utf8")
B[,m]<-temp$name
}
すると,以下のようなエラーがでました
エラー: 関数でないものを適用しようとしました
追加情報: Warning messages:
1: In read.table(file = file, header = header, sep = sep, quote = quote, :
入力コネクション ‘YYYYYYY.csv' に不正な入力がありました
2: In read.table(file = file, header = header, sep = sep, quote = quote, :
incomplete final line found by readTableHeader on ‘YYYYYY.csv'
これについては何かおわかりでしょうか? >>517
Warningなら動いてるはずだけど
mが1のときはちゃんと読み込めてるんだよね? >>518
そのはずなんですが…
Bが0行列になってしまっているということは読み込めていないんですかね? >>520
どうやらtempに上手くデータが入っていないようです >>521
temp<-read.csv(A[1],header=TRUE,fileEncoding = "utf8")
も入んないのかね?
Aにやっぱりファイル名取れてる?
コンソールでAとだけ打ったら中身見えるのは知ってるよね? >>522
Aにはちゃんと全ファイル名が取れています
見てみると1つ目のcsvファイルで突っかかっているようです >>522
追記になりますがA[1]に置き換えて1行で実行しても同じエラーを吐き出します >>523
なるほどねえ
あ、今ってさ、カレントディレクトリにcsvあるわけじゃないんだけ?
setwd(path)でそこにディレクトリ移動できるからそれからread.csvやったらダメかね? >>525
setwd(path)
getwd()
path <- ‘ZZZZZZZZZZ’
A <- list.files(path,pattern=".csv$")
B <- matrix(0,360,length(A))
for(m in 1:length(A)){
temp<-read.csv(A[m],header=TRUE,fileEncoding = "utf8")
B[,m]<-temp$name
}
こちらで回しても同様です
.Rファイルと.csvファイルは同じフォルダにいれています >>527
先ほどのtxtをcsv形式で保存してpath2に代入
bb<-read.csv(path2,header=TRUE,fileEncoding = "utf8")
bb
こちらは普通にマトリクスが表示されます >>528
そっか、手間取らせちゃったね
Rとは直接関係ないけど、csvファイルのセパレータは「,」か改行コードがどうとかなのかなあ
テキストエディタでcsv開いたら確認できる >>529
お早うございます昨日はありがとうございます
一応read.csvの中にsep=','も入れてるのですがどうにも…
ヘッダーに日本語が混じっているとエンコード入れてもダメなんですかね? >>530
> ヘッダーに日本語が混じっているとエンコード入れてもダメ
今のRは、そんなことない。
正常なcsvは正常に読み込めて、君のcsvは正常に読み込めないのであれば、
われわれ読み手には分からない未知の原因がそのcsvファイルにあるのだと思うよ。
とにかくファイルA[1]がread.csv()で読めるようにならないと先に進まないよね。
こういう場合は、csvファイルの列を減らして、徐々に増やして、原因を調べる。
また、行を減らして、3行ぐらいのcsvを作ってみて、それを試してみるとか。
成功したら、また行を増やして試してみるとか。
不正なcsvファイルの原因を追及して、分かったら、その対処をして、Rに読み込めばいいと思うよ。 >>531
アドバイスありがとうございます
遅くなってしまいましたが、解決したので報告にきました。
全てのcsvのヘッダーを削除することでread.csvが正常に作動するようになりました。(ヘッダーのT,F切り替えでは無理でした)
また、結合したい列群をlist関数に一度格納して、全てを結合することで解決できました。
ご協力頂いた方、ありがとうございました >>532
> ヘッダーのT,F切り替えでは無理でした
header = FALSEにするなら、1行目を無視するためにskip = 1も必要だろ。
いずれにしても解決おめでとう。 ふと思ったんだけど、統計解析を題材にしたSF小説って無いだろうか?
『星を継ぐもの』の統計解析版みたいな感じに、ホームズ役がt検定とかF検定で謎を解く。
誰か書かんかね。
億万長者になれるかもよ。 統計解析がどの程度「科学」なのかにちょっと疑問を感じて。
p値が10のマイナス××乗くらいだと「何かある」と言って良いのだろうけど、
反証可能性がどうのという次元と5%で有意という次元に、厳密性でだいぶ開きがあるような気がする。 統計解析ミステリーとか面白いな
主人公が頑張って調べて一応事件が解決するんだけど、
唯一残った謎が実は有意水準の設定による第1種の誤謬とかが
起こっていたみたいなエピローグがあるところまでは、妄想したw 確率が絡む分かりやすい例はDNA鑑定なのかな
もっとも統計解析ミステリーと銘打っておいて題材がDNA鑑定じゃ
ちょっと陳腐か こんなのなら少し近いかな。
『グレーレンズマン』アスタウンディング誌1939年10月号より四回連載。
>「では分析し理論づけを行い、結論を引き出そう」首席は宣言した。
>各生物は自己のアイディアと推論を機械に提供した。機械は短時間
>うなった後、テープを押し出した。<中略>「九五パーセント以下の
>可能性しか持たない結論はすべて除外する」彼は宣言した。「われ
>われは次のような結論を得た。第一、三つ一組の事実が、九九・九
>九パーセントの確率で―つまり事実上確実に―存在する。すなわち…
九五パーセントって、統計的検定を意識してるよね。 あ、すごい有意水準定めてるwwwww
俺統計学史には疎いんだけど、ストーリーに紹介されるほどには発達してたんか 警察による税金を使ったいやがらせ犯罪、集団ストーカー。犯行内容
盗聴、盗撮、尾行、待ち伏せ、家宅侵入、窃盗、器物破損、風評のばらまき、就職妨害、リストラ工作、
暴走族や暴走大型車両による騒音攻撃の繰り返し、住居周辺での事件のでっちあげ、音声送信の強要、
電磁波による触覚攻撃、思考盗聴、無言電話、無実の人間を犯人にでっち上げ、ヘリによる威嚇、殺人、
メディアを使ってのほのめかし。特に家宅侵入、器物破損、窃盗は犯罪そのもので、犯罪組織に人を
逮捕する権限をあたえているのが今の日本であり、恐ろしい国になっているである。 for(a 1 in 100){
for(b 1 in 100){
for(c 1 in 100){
for(d 1 in 100){
e=a*b*c*d
if(e>max_e)max_e=e
}
}
}
}
という入れ子ループにすると、
ご存知の通りRでは劇的に処理が遅く、
これを解決する手法としてベクトル化することが知られてますが、
ググってはみてもベクトル化の仕方が分かりません
forが1つであれば分かるのですが入れ子の場合はどうすればベクトル化できるのでしょうか RってCUDAもしくはCPUのマルチスレッド化をできるものなんですかね? >>541
こんなのは? 2行目がベクトル化ということだと思う:
df <- expand.grid(a=1:10, b=1:10, c=1:10, d=1:10)
df$e <- with(df, a*b*c*d)
max(df$e) >>543
うおお・・・!
素晴らしいとしか言いようがないです
1:100として手元のi5ノートPCで走らせたところ
ユーザ システム 経過
20.19 4.97 25.43
なお541のコードだと・・・
ユーザ システム 経過
499.98 0.19 505.33
雲泥の差です
expand.gridで組合せの行列を作ることができるんですね
それでeを一括計算してmaxで最大値を導き出す
やはりRでは常にベクトル化を心がけないと遅すぎでR嫌いになりかねないというか、
いかにベクトル化できる知識があるかというのが重要なファクターですね
i7でゴリ押し処理出来ないこともないんですが、エクセレントコード化への努力がハード面の改良を大きく越えることができるのがRの長所(R以外の言語もそうですが)と思うので、色々と本なりネットなり漁ってみたいと思います
ほんと勉強になりました
ありがとうございました >>544
max(1:100%o%1:100%o%1:100%o%1:100) >>545
この例だったら総当りじゃなくて重複組み合わせの積で十分だと思うけど
Rでどうやってやんの? >>546
RってLAPACKのラッパーだからな。
行列の処理に帰着させられない問題はもともとどうしようも無いのだと思う。 オレもexpand.gridが思い浮かんだ。
>>545と比較すると、
> system.time(max(1:100%o%1:100%o%1:100%o%1:100) )
ユーザ システム 経過
0.711 0.075 0.787
> system.time({df <- expand.grid(a=1:10, b=1:10, c=1:10, d=1:10);df$e <- with(df, a*b*c*d);max(df$e)})
ユーザ システム 経過
0.002 0.000 0.002
圧倒的だな。 >>549
10^4と100^4を比べれば圧倒的にもなる。 >>550
ほんまや、すまんかった
> system.time(max(1:100%o%1:100%o%1:100%o%1:100))
ユーザ システム 経過
0.643 0.104 0.747
> system.time({df <- expand.grid(a=1:100, b=1:100, c=1:100, d=1:100);max(with(df, a*b*c*d))})
ユーザ システム 経過
4.381 0.759 5.144 >>551
マルチコア対応BLASを使うとどうなるんだろ。 expand.gridで組合せ一覧を作って行列計算できる系だと速いけど、
if文とか入ってる自作関数を適用するときはエラー吐かれて結局逐次計算せざるを得ないケースも多いから、
俺の場合行列計算で高速化できるケースは少ない >>553
なんで「if文とか入ってる自作関数を適用するときは...逐次計算せざるを得ない」のだろう?
最小の事例とか示せる? >>554
例えば-10から+10の乱数を10000個作る
これを10列で区切って1000行の行列にする
行の0以上の要素の合計をA、0未満の要素の合計をBとして、
A+Bの合計Cを11列目に追加する作業を、
行列計算で一括計算はできない、
1行毎にif文使って逐次計算する他ないということだ
x<-floor(runif(10000, min=-10, max=10+1))
y<-matrix(x,ncol=10)
A=sum(y[y>=0])みたいなif文を使うからfor文使わざるを得ない
>>555
大きなお世話かもしれんが、データフレームでいいんだったらこんなんでいいと思うけど。
library(dplyr)
y <- data.frame(x=floor(runif(10000, min=-10, max=10+1)), group=rep(1:1000, each=10))
summarize(group_by(y, group), A=sum(x[x>=0]), B=sum(x[x<0]), C=A+B) 行列で計算するならこんなだろうか。
x<-floor(runif(10000, min=-10, max=10+1))
y<-matrix(x,ncol=10)
z <- cbind(y, apply(y, 1, function(a) sum(a[a>=0])+sum(a[a<0]))) >>556,557
調べればRって大規模計算が苦手なんだな
dplyrって結構有名らしいがニッチなパッケージばかりいじってたから知らなかった
汎用性高そうというかRに最初から付属しておいて欲しいくらい高性能だ
しかも俺みたいにパッケージに丸投げして終了ではなく、
しっかり標準装備の関数でも実現するとは・・・
ちなみに557の方が556より20倍速かった
ということでdplyrマスターするためにあれこれググろうと思う
行列計算にif文使えるというのが分かって非常に感動している
ありがとう>>556さん、涙出た >>558
失礼かもしれないがこれって結構常識だぞ
rってスクリプトでバカでもすぐ動くコードが手に入るからこういう知ったかした自称中級者みたいなやつが多すぎる気がする
データサイエンティスト()みたいな人たちもかなりひどいコード書いてる事例をいくつも見てきた dplyrとかggplot2とか、未だに抵抗あるし、使っていない。 先輩方、2つ質問があります
1つはベクトルを一期ずつずらして行列にするというもので、
1〜100が入ったベクトルから、
1 2 3 4 5
2 3 4 5 6
3 4 5 6 7
4 5 6 7 8
...
という行列を作りたいんですが、
こういうのは、
a=1:100
b=a
a.len=length(a)
for(i in 2:5){
b=cbind(b,a[i:a.len])
}
b
という感じでforとbind使うしか方法ないでしょうか?
これだとaが10000とかあるとまあまあの処理時間を要してしまいます もう一つがあれから色々とググってたdplyrについてで、
dplyrのsummarizeという関数は、
applyみたいに行単位で関数にデータを渡して計算できないんですか?
上のbをb.df=data.frame(b)として、
のb.dfをsummarizeにそのまま渡したら行ではなく全体を計算してしまうわけですが、
>>557のapply(y, 1, function(a) sum(a[a>=0])+sum(a[a<0]))
みたいな処理をさせるにはb.dfをグルーピングする必要があるのでしょうか? a<-1:1000
n<-5
b<-c()
last.b<-length(a)-n
for(i in 0:last.b){b<-rbind(b,head(a,n)+i)}
そこまで時間かかるわけでもないしなにがしたいのかあまりわからない・・・
横は5固定なのだろうか・・ >>561
for と bind を使うしかないと思う。縦にずらした後の末尾の値がNAでいいのなら、より早いのは
library(dplyr)
a <- list(1:100)
for (i in 2:5) a[[i]] <- lead(a[[i-1]])
b <- do.call(cbind, a)
>>562
データフレームでもそのままapplyが使える。
b.df=data.frame(b)
apply(b.df, 1, function(a) sum(a[a>=0])+sum(a[a<0])) >>561
t(matrix(1:5,5,100))+0:99 >>561
n <- length(a)
m <- 5
idx <- outer(1:n, 1:m, function(x, y) {
i <- x + y - 1
ifelse(i > n, NA, i)
})
matrix(a[as.vector(idx)], n, m) >>561
matrix(1:105, nrow=106, ncol=5)[1:100,] >>563
この時系列行列に変換する作業を数百回近く計算させるので少しでも速い方が良いわけです
1000も5も暫定の数です
やはりcbindではなくrbindですよね
forの回数を減らしたいがためにちょっとインチキかなと思ったんですが、
563さんのコードが正確に意味を捉えた書き方で、
自分のやり方だと行列計算したときに結果が違ってきそうです
>>564
おお、dplyrを使った方法とは・・・
末端部分に多少の欠損値があっても大丈夫です
do.call関数でググったら、
なにやらcbind_allというものを使うとめっちゃ速くなるらしいので少し調べてみたいと思います
b.dfにapplyを適用させるのではなく、
apply(b.df,1,・・・と同等の処理をdplyrで実現できないか?ということです
実はforからapplyに書き換えたら処理速度が遅くなったという経緯がありまして・・・
多分書き換える過程で余計な処理が入ったためと思われますが、
dplyrで処理したら或いはという思惑と、
これが実現できたらこれから大分dplyrに依存=夢広がるという期待があります >>565,567
うおお・・・for文使ってない!
凄いのですが基本を右往左往してる自分には理解するのに暫くかかりそうです
特に+0:99など何がどうなっているのか
あと条件後出しで申し訳ないんですが実際計算するときのaは等間隔で増加するベクトルではなく、
任意の数列を使うのでサンプルでとなるとa<-floor(runif(1000, min=-10, max=10+1))みたいなのを想定しています
matrix関数を使って出来るのでしょうか
>>566
今のところ最速で処理できています
aを任意のベクトルにしても実用的な速さで十分な速度が得られています
まだコードを理解しきれていないですが、これでかなりいけそうです
あとはこれをdplyrで行列計算できれば・・・ >>566
と思ったらこちらも任意のベクトルを適用できませんでした・・・orz
しかしトリッキーな発想で面白い
ん〜・・・試行錯誤してみます
ちなみに自前のデータで処理時間を計測
[要素数1,000]
for+cbind
ユーザ システム 経過
0.07 0.00 0.07
dplyr(>>564)
ユーザ システム 経過
0 0 0
[要素数100,000]
for+cbind
ユーザ システム 経過
6.78 0.53 7.42
dplyr
ユーザ システム 経過
0.41 0.03 0.43
[要素数1,000,000]
for+cbind
ユーザ システム 経過
61.94 8.00 70.55
dplyr
ユーザ システム 経過
4.23 0.78 5.02
という結果でした >>561
任意のベクトルを使い、n行m列の場合。意外なことに、行列を使った方が遅かった。
n <- 100000; m <- 1000; x <- floor(runif(n, min=-10, max=10+1)); library(dplyr)
system.time(suppressWarnings(matrix(c(x,rep(NA,m)),nrow=n+m+1,ncol=m)[1:n,]))
system.time({y<-list(x);for(i in 2:m) y[[i]]<-lead(y[[i-1]]);do.call(cbind,y)}) Rのkernlabパッケージのksvmについて質問です。
クラス分類の方法は、1対他分類法でしょうか?それとも、1対1分類法でしょうか? >>571
numericで領域確保してからやると1割くらいは速くなりましたが、
やはりc++で書かれてるdplyrが大分上手のようです
applyライクな処理をdplyrでの件ですが、
引き渡すベクトルが順不同であればsummarizeでもイケるんじゃね、
ということで見様見真似で書いたのが、
result <- data.frame(b,group=1:length(b[,1]))%>%group_by(group)%>%summarize(sum(x[x>=0])+sum(x[x<0]))
で、遅っい上に結果も散々でした
どこが悪いんでしょうか >>571
a が任意のベクトルで動作するはずだが。
うまくいかないなら、例を示してくれ。 >>570
a が任意のベクトルで動作するはずだが。
うまくいかないなら、例を示してくれ。 >>574
どうやら色々やってるうちにaに生成した(1:1000)ベクトルが入った状態でテストしたようで、
勝手に先の流れで序順を利用したコードだと思い込んでいました
大変に失礼しました
ちなみに処理時間を計測
[要素数1,000]
ユーザ システム 経過
0 0 0
[要素数100,000]
ユーザ システム 経過
0 0 0
[要素数1,000,000]
ユーザ システム 経過
0 0 0
( д) ゚ ゚
これが神か・・・
コードの理解に暫く時間がかりますが、
これは何としても使えるようになりたいです
なるほど先に要素行列を作ってベクトルに変換して必要な要素を一気に取り出して行列に変換しているのか
1期ずらす処理を1度に処理する為にouter使っているのがミソというわけで
見るほどに感心するコードだ 今はdplyrだけに頼らず、
他の関数見つけたりプログラムの構造変えたりで何とかやってみます
みなさんどうもありがとうございました! Programming R in Haskell
ttp://tweag.github.io/HaskellR/ プログラミング言語っていくつ覚えればいいのか不安になる(と思ったのが10年以上昔のこと)。
C/C++、Perl 4とshだけでもこりごりという感じだったのに。 重回帰分析についての質問です。
普通の線形回帰で、残差をリサンプリングするブートストラップはlm.boot関数でできます。
そして、ロバスト回帰はlmrob関数でできます。
ロバスト回帰の標準誤差を「残差をリサンプリングする」ブートストラップで
求めるにはどうしたらいいでしょうか?
FRBパッケージのFRBmultiregMM関数だと、説明変数をリサンプリングするタイプしかできません。
よろしくお願いします。 581さんと被っちゃいますが、重回帰分析について質問です
調べたのですがどうにも重相関係数Rの出し方が分からなくて。どなたかお教え頂けないでしょうか? 普通の多層パーセプトロン(MLP)なら {neuralnet} や {RSNNS}、
リカレントボルツマンマシン(RBM)なら {RSNNS} や {deepnet}、
Deep Belief Network (DBN)なら {deepnet} など。
よく読みこめてませんが、広くディープラーニングは {h2o}。
畳み込みニューラルネット(DNN)、ディープボルツマンマシン(DBM)を
実装しているパッケージが見つかりません。
知っている方いらっしゃったら教えていただけませんか? 昨日からターミナルで使い始めた初心者です。
?saveでsaveのヘルプを表示させました。
スペースを押して、ヘルプの最後まで表示させると
(END)という表示が出ています。
このヘルプを終了させて、?saveでヘルプを表示させる
までの続きの作業をしたいのですが、どうやって
ヘルプを終了させてもとのRの作業に戻れるのでしょうか? >>584
操作はページャの種類に依存します。
自分でoptions("pager")を設定した記憶がないのであれば、
lessやmanなどと同じ操作系だと思います。
qを押下して終了です。 >>585
ありがとうございます。教えていただいたやり方でヘルプを抜けることが
できました。 RとRsdudioインストールしました。入門書教えてください。 >>587
help.start()
に「An Introduction to R」があるはず。
これが入門書 >>588
>>590
ありがとう、でも初心者には難しい
はじめての「R」、とか見付けたので色々あさってみる Rのコンソール設定を変更して、背景色を変えたり、テキストのカラーを
変更してsaveやapplyしても、もう一回、Rコンソールに入り直すと、
デフォルトの白色の背景色と赤色の>コマンドになってしまうのは、なぜなのでしょうか。
ちなみに、windowsユーザで、Rstudioは使用していません。
macユーザだと、その辺りが簡単になっている感じがする。 あと、R3.2.2だと、直交表を作成するconjointライブラリーやepicalcライブラリー
が入らないのですが、R3.2.2で、それらと同様のことが出来るライブラリーは
ありませんか。
Rの2系を入れて試しても、バージョンが少しでも違うと入らないようです。
なるべく、R3.2.2だけを利用していきたいので、なんかいい方法ないかな、と。 嘘はよくないぞ
> R.Version()$version.string
[1] あれ、途中で切れた?
R version 3.2.2でもepicalcはインストールできるよ
> R.Version()$version.string
[1] "R version 3.2.2 (2015-08-14)"
> packageVersion("epicalc")
[1] ‘2.15.1.0’ >>595
今、それと同じように実行してみたところ、以下の結果になった。
> R.Version()$version.string
[1] "R version 3.2.2 (2015-08-14)"
> packageVersion("epicalc")
packageVersion("epicalc") でエラー:
パッケージ ‘epicalc’ が見付かりません
と表示されたので、パッケージをインストールしてみた。
> install.packages('epicalc')
Installing package into ‘C:/Users/ユーザー名/Documents/R/win-library/3.2’
(as ‘lib’ is unspecified)
--- このセッションで使うために、CRAN のミラーサイトを選んでください ---
警告メッセージ:
package ‘epicalc’ is not available (for R version 3.2.2)
と表示されて、やはり、入らなかったよ。 >>596
epicalcはアーカイブに入っているから、そんな方法じゃ入らないよ。
CRANからソース(*.tar.gz)をダウンロードして、ソースから入れないと。
コンパイルできる環境が構築していないなら、まずはそこからだな。
Mac OS XやLinuxでは何てことはない平常運転でも、
Windowsユーザはいろいろと苦労しなくてはいけないことがあるが、まぁ頑張れ。 >>597 ありがとうございます。やはり、Rはコンソール設定など含めて、
Macの方がいろいろと楽みたいですね。
あと、今、自分が使っている、最近、出版されたRのテキストに、
IQR()関数は、四分位偏差と書いてあるのだけど、
これって、四分位範囲のことと間違えているんじゃない。
四分位範囲は、(第3四分位数)−(第1四分位数)のことで、それを2で
割ったものが、四分位偏差だと思うのだけど。
でも、それをRで実行してみると、おかしな結果になる
> a <- c(1,2,3,4,5,6)
> median(a)
[1] 3.5 中央値は、これで正解になっている
> IQR(a)
[1] 2.5
と出るのだけど、四分位範囲であれば、ここでの第3四分位数である
5と、第1四分位数である2を引いた数である3が正解になっているはず
なのに、なぜか、2.5がIQR()関数での結果となってしまう。
この理由が分かる人、誰かいませんか。 >>599 関数の()を付けないで入力すると、函数のソースを出せるんですね。
さっそく、やってみました。
> IQR
と、入力してIQR()関数がどうなっているかを調べてみると、
function (x, na.rm = FALSE, type = 7)
diff(quantile(as.numeric(x), c(0.25, 0.75), na.rm = na.rm, names = FALSE,
type = type))
<bytecode: 0x2c0ca970>
<environment: namespace:stats>
この関数のコードは、よく分からないのだけど、たぶん、ベクトルcの中で、
0.75の位置にあるもの(第3四分位数)と0.25の位置にあるもの(第1四分位数)を
差分(diff)した解を求める関数とある。やはり、IQR()は、四分位範囲(quantile)を
求める関数で、四分位偏差を求めると記述してあったRの本は、記述ミスだったらしい。
でも、 a <- c(1,2,3,4,5,6)で、自分で計算するやると、やはり、3が答えになるのだけど、
Rだと、
> IQR(a)
[1] 2.5
と表示されるので、やはり、自分にとっては謎設定であるIQR()関数 >>600
aをquantile()に入れてみそ
ヘルプ見ると分かるけど四分位値の計算方法って9通りあるから
スマフォなんで、ぶっきらぼうでスマンが >>599
そのあたりの話はヘルプに詳しく書いてあった気がするけど。
>>601 の指摘通り、複数のやり方があるので要注意。 >>601
共著者3人で書かれたものです。題名と著者名があえて挙げないけど、
出版社はオーム社で、今年、出版されたもの。これだけで、結構、
該当著書が絞り込めるはず
>>602
面白い方法を教えてくれて、ありがとうございます。
さっそく、言われた通り実行してみると、
a <- c(1,2,3,4,5,6)
quantile(a)
0% 25% 50% 75% 100%
1.00 2.25 3.50 4.75 6.00
と実行結果が得られる。このRの四分位数の計算だと、第3四分位数が75%の下に
書いている4.75になって、第1四分位数が25%の下にある2.25になって、
その四分位範囲は、(第3四分位数の4.75)−(第1四分位数の2.25)の演算で
2.5が答えという風になっているようだけど、学校で習う一般的なレベルでの
要素が偶数個ある場合の四分位範囲の求め方は、
a <- c(1,2,3,4,5,6) だと、左半分(この場合は、1,2,3)の中央値である2が
第1四分位数となって、右半分(この場合は、4,5,6)の中央値である
5が第3四分位数になるので、a <- c(1,2,3,4,5,6) のベクトルでは
(第3四分位数の5)−(第1四分位数の2)=(四分位範囲の3)
が、一般的な四分位範囲の答えのはずなのです。 >>603 ヘルプに書いてあるんですね。今、コンソールのヘルプにある
関数で、quantileを入力すると、
ttp://127.0.0.1:27220/library/stats/html/quantile.html
に、その演算の仕様が書いてあって、英語なので、まだ、よく読んでいない
のだけど、教えてくれたように、9タイプくらいの方法 quantile algorithms が
あるみたいです。そして、記述によると、どうもベクトル内の要素を連続量(値)とみなすか、
離散量(値)とみなすかで計算方法が違うらしくて、それで私の計算結果との誤差が生じている
感じですね。RのIQR()関数は、どうやら連続量を前提にして、計算しているらしいです。
quantile(a)
0% 25% 50% 75% 100%
1.00 2.25 3.50 4.75 6.00 で、分かりました。 >>604
やってみました。
> fivenum(a)
[1] 1.0 2.0 3.5 5.0 6.0
そう、この区切り方が5数要約として一般的なもの。この並びだと
真ん中の3.5が、このベクトルの中央値で、一番左の1.0が最小値、
一番右が最大値6.0、
(第3四分位数の5.0)−(第1四分位数の2.0) = (四分位範囲の3)
でいいはずなのに、Rで実行すると、IQR(a) は2.5になってしまう。
上記に書いたように、Rは四分位範囲を離散値でなく、実数の連続量
とみなして計算しているらしいので、いろんな計算の仕方があるんだ、
という風に理解しておきます。みなさんのアドバイス、すごい役立ちました。
感謝です。 既にご自身で結論を出されていましたね。Rで計算結果に疑問を感じたら
ヘルプを見て、ソースを見てみて下さいな。 ttp://blog.rstudio.org/2015/12/21/ggplot2-2-0-0/ ggplot2のパッケージが、いろんな設定(rstan、JAGS言語など)を
グチャグチャ昨日、適当にいじっていたら、使えなくなってしまった。
インストールは普通に出来るのだけど、library(ggplot2)で実行すると、
> library(ggplot2)
Error in loadNamespace(j <- i[[1L]], c(lib.loc, .libPaths()), versionCheck = vI[[j]]) :
‘Rcpp’ という名前のパッケージはありません
エラー: ‘ggplot2’ に対するパッケージもしくは名前空間のロードが失敗しました
となってしまう。Rでggplot2が使えないのは、かなり致命傷になる。それでqplot()なども
使えなくなってしまう。R自体をアンインストール、再インストール・再起動しても同じ状態。
ファイルやフォルダ関係、あとは、アクセス権限がない、みたいなエラーが出たので、
その辺りも、いろいろ弄ってしまったので、調べても訳が分かりません。
barplot()の棒グラフやhist()ヒストグラム、箱ひげ図などは、普通に、表示できるっぽい。
qplot()関係がダメ。だから、それを使った散布図などが出来なくなりました。
windowsユーザーです。Rstudioは使っていない。
これが分かる、サンタさんはどこかにいますか? library()で見てみると、
ggplot2 An Implementation of the Grammar of Graphics
という風に、ちゃんと入っている状態なのだけど…… library(dplyr) でも、
Error in loadNamespace(j <- i[[1L]], c(lib.loc, .libPaths()), versionCheck = vI[[j]]) :
‘Rcpp’ という名前のパッケージはありません
エラー: ‘dplyr’ に対するパッケージもしくは名前空間のロードが失敗しました
と出てしまう。 頭悪すぎるだろエラーちゃんと読めよ
Rcppが無いって言ってんだからお前がすべきなのはRの再インストールでもggplot2の再インストールでもない
Rcpp消して入れ直してみるのが先だろゴミゆとり野郎 >>614
言われた通り、Rcppのフォルダを削除して、もう一度、インストールしたら、
即、直りました。サンタさま、ありがとうございました。
おかげで、所要時間20秒で済んだ。年末、これが憂鬱の種にならなくてよかった.
>>615 いや、サンタさまで、十分間に合いました。こんな簡単な処理で、
すぐに直るものなのですね。>>すべては、614さんのおかげ。謝謝 このスレの人は普段どういう環境で仕事や研究してるの?マシンスペック教えてください。
rstudioは使ってますか? >>617
RStudioは初心者の教育用に使うだけ。自分の仕事には使わない。
ESS一択。計算量が多い時には、ローカルなマシンで計算せずに、
sshでワークステーションに仕事を投げる。
OSはDebianだったりUbuntuだったり。 俺もiPad Air持ってて、アプリでR使いたいな
入れておけば(使うことはないだろうけど)精神衛生上なんとなく落ち着くw y1=5sin(2x)-(x-1)^2-x+1
y2=5xのとき、これらのグラフをx軸について回転したとき
2つのグラフによって囲まれた部分の図形が作り出す体積を求めるプログラムを知りたいです
わかる方よろしくお願いします
少し面倒かと思われますので、指針だけでもよろしくお願いします。 >>622です
どなたかご協力いただけないでしょうか?
原点付近の、回転体のとき重なる部分が単にy1-y2の絶対値を取るだけでは答えにならない点で困っています
また、式的にはy1-y2=0は解けないので、正確な答えはでないと思います
言い忘れていましたが、xの定義域は-3~3で、統合を含め、xは0.05刻みです >>624
x軸の周りに回転させるんでしょ。
maximaで
> integrate(%pi*(abs(5*sin(2*x)-(x-1)^2-x+1-5*x))^2, x, -3, 3)
とやればいいんじゃないでしょうか。 >>625
それだと回転体を作るとき重なる部分が出てきませんか?
自分としては2つの関数が正負それぞれの符号の値の時、絶対値が大きい方のみを使えばいいかと思ったのですが 囲まれた部分を、x軸を中心に回転させるんでしょ
だったら体積は π∫(絶対値の大きい方^2−絶対値の小さい方^2)dx
具体的には、y1とy2の交点は4つ
x1=-3.4 辺り、x2=-1.2 辺り、x3=0、x4=0.9 辺り
x1〜x2までは、直線の方が絶対値が大きく、
x2〜x4までは曲線の方が絶対値が大きい。従って、
π∫[x1,x2](y2^2-y1^2)dx + π∫[x2,x4](y1^2-y2^2)dx
=π{G(x1)+G(x4)-2G(x2)}、ただしG(x)=∫(y1^2-y2^2)dx
囲まれた部分全体ではなく、-3<x<3に限るんなら、上の式のx1を-3に変えればいい すみません、ggplot2について質問なんですが、
X軸の日付が順番通りにならなくて困ってます
グラフの2012年のところだけ順番通りではありません
(10月→11月→12月→1月→2月・・・の順番になってしまっている)
データフレームはUNIXTIME、DATE、CNTで出来ていて、
以上を回避するためにorder=UNIXTIMEとしているのですが症状が変わりません
どうしたら良いでしょうか
ttp://i.imgur.com/MbyJ4Nl.jpg
2012年というか全部12月→1月→2月・・・になっています
出来れば日付は日本語表記のままでグラフを作成したいです >>628
2012年01月、2012年02月…という風に、月を二桁で統一すればいい。 >>630
やっぱそうなりますよね・・・
でもこれなんでDATEで勝手にソートされるんですかね >>631
このページは見た? 参考になるかも。
ttp://d.hatena.ne.jp/triadsou/touch/20110701/1309496186 >>632
私もググってて何となくreorderを使うくさいと思ってたんですが、
今一うまく解説してるところ見つけきらなくて、提示頂いたサイトむちゃくちゃ参考になりました
なるほどやはりggplot2側で自動ソートされる仕様になってたんですね
x=reorder(DATE,UNIXTIME)でうまくいきました
本当にありがとうございました
ttp://i.imgur.com/yDQzvLz.jpg
質問失礼します (作業環境:Rstudio)
plot関数で、Console窓右上の演算マーク (赤丸) が消えてから実際に図に反映されるのに物によって結構ラグがあるのですが、
これってPCスペックの何が原因なのでしょうか? (グラボ?メモリ?) 失礼します。
Rのbigmemoryで大規模データを扱っているのですが、
いくつもbig.matrixを開いていたら、
メモリ周りがよく分からない状況になりました。
http://imgur.com/5Qzg6t4
(Ubuntu, R:3.2.3 + CRAN bigmemory)
Rで200GB (300% of 実メモリ) 使っていても、swap 0 ?
VIRTだけなら分かるのですが、RESもSHRも200GBあるのに?
動いているので良いのですが、どこかで落とし穴にはまりそうで、
状況が分かる方がいらっしゃれば教えていただけませんでしょうか。
よろしくお願いいたします。 自己解決しました。
/proc/meminfoを見てみたらほとんどがmapped(mmapでファイルを割り付けたもの)のようで、それがRES等にも加えられてるようです。実質的には3Gも使われてないっぽい。
わ、分かりづらい ノーパソ買いかえるんだが、ベイズやる上でCore i7の6500Uと6700HQに体感できる差はある (or 将来的にできそう) ?
重い解析はワークステーションに投げるんで、数十分で終わる程度の奴を想定している ノートでi7は要らない
デスクトップのi7と性能違いすぎて詐欺レベル >>638-639
レスあり
性能ならデスクトップ一択なのは承知しているんだが、取り回し等よりノーパソ1台で済ませたいという
GPUは意識したこと無かったわ、ありがと gputools, rpud, gmatrix, Rth あたりらしい どれも性能悪い。
無理してRに固執する必要ないだろ。 素のままじゃできなくて、workspace増やしてfisher.testやったら止まったwww
core i5 560mじゃそろそろ限界かね…\(^o^)/ 複数マシンでSOCKベースのforeachで並列処理をしてたんだけど、
doSNOWとdoParallelって動きが違うのね。
doParallelは.inorder=Fを指定しても.inorder=Tの動きをするみたい。
同期待ちでmasterのメモリが食いつぶされるからちょっとだけ困る
Parallelが標準パッケージだからdoParallelでいけるかと検討したけど、
まだしばらくはdoSNOWじゃないとダメかも。 >>647
俺も今週の月曜にnot foundでショック受けたけど、今さっき復活したわ
何か不安定なのかね wilcox.testのwが手計算と合わないので調べたらこういうことだった。
# The literature is not unanimous about the definitions of
# the Wilcoxon rank sum and Mann-Whitney tests.
# The two most common definitions correspond to the sum of the ranks of
# the first sample with the minimum value subtracted or not:
# R subtracts and S-PLUS does not,
# giving a value which is larger by m(m+1)/2 for a first sample of size m
# http://stats.stackexchange.com/questions/65875/different-ways-to-calculate-the-test-statistic-for-the-wilcoxon-rank-sum-test
m<-5
n<-10
x<-rnorm(m)
y<-rnorm(n,1.05)
W<-wilcox.test(x,y)$statistic ; W
sum(rank(c(x,y))[1:m]) ; W + m*(m+1)/2
#p<-wilcox.test(x,y)$p.value ; p
#pwilcox(W,a,b)*2 Rグラフィック自由自在を買ってみたが、酷い日本語訳だった
内容はいいのに残念 ¥
>1 :名無しさん :2006/04/30(日) 01:41:01 ID:KPnB.CH2
> 迷惑かしらん
>
>5470 :¥ ◆2VB8wsVUoo :2016/08/06(土) 17:43:47 ID:???
> ¥
>
>5471 :kmath1107★ :2016/08/07(日) 06:25:49 ID:???
> 人への念の盗み見による介入を阻め。
>
>5472 :¥ ◆2VB8wsVUoo :2016/08/07(日) 08:32:51 ID:???
> ¥
>
>5473 :kmath1107★ :2016/08/07(日) 17:43:49 ID:???
> 人への念の盗み見による介入を阻め。
>
>5474 :¥ ◆2VB8wsVUoo :2016/08/07(日) 17:54:48 ID:???
> ¥
>
>5475 :名無しさん :2016/08/08(月) 04:30:59 ID:C9rjCaNs
> 人への念の盗み見による介入を阻むことができれば、多くの人に明るい未来が来る?
>
>5476 :kmath1107★ :2016/08/08(月) 10:05:45 ID:???
> 人への念の盗み見による介入を阻め。
>
> Re:>>5475 人への念の盗み見による介入が無くなれば世の不和が無くなるだろう.
> Big Data
大学学部に入学して
Programming with Big Data in R.読むから ¥
>1 :名無しさん :2006/04/30(日) 01:41:01 ID:KPnB.CH2
> 迷惑かしらん
>
>5535 :¥ ◆2VB8wsVUoo :2016/08/13(土) 18:53:14 ID:???
> ¥
>
>5536 :kmath1107★ :2016/08/13(土) 21:08:24 ID:???
> 人への念の盗み見による介入を阻め。
>
>5537 :¥ ◆2VB8wsVUoo :2016/08/13(土) 21:25:44 ID:???
> ¥
>
>5538 :kmath1107★ :2016/08/13(土) 23:23:07 ID:???
> 人への念の盗み見による介入を阻め。
>
>5539 :kmath1107★ :2016/08/13(土) 23:41:45 ID:???
> 人への念の盗み見による介入を阻め。
>
>5540 :名無しさん :2016/08/14(日) 00:05:47 ID:???
> かつて僕(増田哲也、痴漢で逮捕)が大阪大学基礎工学部の学部学生であった時、大学院の指導教官となってくれそうな先生を
> 探して各地のいろんな先生方を訪ねて回った時の事である。理論物理学を大学院で専攻しようとして理
> 論物理学の初歩をかじっていた僕(増田哲也、痴漢で逮捕)は、当時京都大学数理解析研究所に居られた超一流の理論物理学者で
> おられる中西先生にこんな質問をした事がある。
>
> 僕(増田哲也、痴漢で逮捕) : 「理論物理学では円周率が様々な所に出てきますが、それには何か深い物理的な理由があるの
> でしょうか?」
>
> 中西先生: 「そういう事を何時も頭の片隅に置いておくのはとても大切な事です。でもそんな事ばかり
> 考えていたら研究論文が書けなくなります。研究者とはそんな甘いものではありません。」
>
> 僕(増田哲也、痴漢で逮捕) : 「は−そうなんですか−」
>
> 結局僕(増田哲也、痴漢で逮捕)は京都大学の中西先生ではなく、別の先生に大学院の指導教官になって頂き、理論物理学ではな
> く純粋数学を専攻した。しかしこの時の中西先生のお言葉は今でも何となく「気になって」いる
>
>5541 :名無しさん :2016/08/14(日) 00:22:38 ID:???
> いい加減、芳雄に謝罪しろ
> 質問します。
id date id2 class x
000 201506 s000 A 1.0
000 201506 s000 B 2.0
000 201506 s000 C 3.0
000 201507 s001 A 0.5
000 201507 s001 B 1.5
000 201507 s001 C 2.5
000 201508 s002 A 3.0
000 201508 s002 B 0.5
000 201508 s002 C 0.1
このようなデータフレームがあったときに、
id date id2 x
000 201506 s000 6.0
000 201507 s001 4.5
000 201508 s002 3.6
このようにclassという変数でxという値に足してまとめる関数などはありますでしょうか? classの値を条件に取り出して、sumするだけだろ? ¥
>702 :132人目の素数さん 2016/08/28(日) 09:23:11.92 ID:TqV2rkX7
>荒らしじゃなくてリアル糖質やろ
>数学ってその記号の乱舞や得体のしれなさ感が思考漏出や侵入の妄想に侵されてる糖質を特にひきつけやすいんやろうな
>
>703 :132人目の素数さん 2016/08/28(日) 14:03:57.24 ID:HR+3VvKr
>増田とか決めつけてるやつなんなの。
>
>ただの統合失調症の患者だろ。
>ちょっと前にいた長文キチガイと同じ人物
>
>704 :132人目の素数さん 2016/08/28(日) 23:09:09.34 ID:zyy7a/SC
>お前の方こそマジなんなんだって感じだ。
>芳雄芳雄と騒いだりkmath1107の掲示板に粘着したりするやつは\=猫=Dr.Masudaしかいない。
>
>707 :132人目の素数さん 2016/08/29(月) 00:13:27.56 ID:a08IoyIs
>牟岐線の行楽へ行かないんですか?
>
>755 名前:132人目の素数さん :2016/08/29(月) 16:30:34.20 ID:tk2e6+QZ
> 夏目漱石の遺作である明暗に小林って男がいて
> そいつは人に嫌われることに快感を見出し他人に迷惑をかけることに自分を見出す男なんだけど、猫の人生ってまさにそんな感じだな
> ごみみたいな論文しか書けなくて低学歴
>
>759 名前:132人目の素数さん :2016/08/29(月) 17:22:16.26 ID:3C5ckLv/
> 増田哲也 の銅像を建て、
> 古事記に 増田哲也命(ますだてつやのみこと) の痴漢話を追加して、
> 増田哲也 の悪行を後世に永遠に語り継ごう!
> ¥
>702 :132人目の素数さん 2016/08/28(日) 09:23:11.92 ID:TqV2rkX7
>荒らしじゃなくてリアル糖質やろ
>数学ってその記号の乱舞や得体のしれなさ感が思考漏出や侵入の妄想に侵されてる糖質を特にひきつけやすいんやろうな
>
>703 :132人目の素数さん 2016/08/28(日) 14:03:57.24 ID:HR+3VvKr
>増田とか決めつけてるやつなんなの。
>
>ただの統合失調症の患者だろ。
>ちょっと前にいた長文キチガイと同じ人物
>
>704 :132人目の素数さん 2016/08/28(日) 23:09:09.34 ID:zyy7a/SC
>お前の方こそマジなんなんだって感じだ。
>芳雄芳雄と騒いだりkmath1107の掲示板に粘着したりするやつは\=猫=Dr.Masudaしかいない。
>
>707 :132人目の素数さん 2016/08/29(月) 00:13:27.56 ID:a08IoyIs
>牟岐線の行楽へ行かないんですか?
>
>755 名前:132人目の素数さん :2016/08/29(月) 16:30:34.20 ID:tk2e6+QZ
> 夏目漱石の遺作である明暗に小林って男がいて
> そいつは人に嫌われることに快感を見出し他人に迷惑をかけることに自分を見出す男なんだけど、猫の人生ってまさにそんな感じだな
> ごみみたいな論文しか書けなくて低学歴
>
>759 名前:132人目の素数さん :2016/08/29(月) 17:22:16.26 ID:3C5ckLv/
> 増田哲也 の銅像を建て、
> 古事記に 増田哲也命(ますだてつやのみこと) の痴漢話を追加して、
> 増田哲也 の悪行を後世に永遠に語り継ごう!
> ¥
>702 :132人目の素数さん 2016/08/28(日) 09:23:11.92 ID:TqV2rkX7
>荒らしじゃなくてリアル糖質やろ
>数学ってその記号の乱舞や得体のしれなさ感が思考漏出や侵入の妄想に侵されてる糖質を特にひきつけやすいんやろうな
>
>703 :132人目の素数さん 2016/08/28(日) 14:03:57.24 ID:HR+3VvKr
>増田とか決めつけてるやつなんなの。
>
>ただの統合失調症の患者だろ。
>ちょっと前にいた長文キチガイと同じ人物
>
>704 :132人目の素数さん 2016/08/28(日) 23:09:09.34 ID:zyy7a/SC
>お前の方こそマジなんなんだって感じだ。
>芳雄芳雄と騒いだりkmath1107の掲示板に粘着したりするやつは\=猫=Dr.Masudaしかいない。
>
>707 :132人目の素数さん 2016/08/29(月) 00:13:27.56 ID:a08IoyIs
>牟岐線の行楽へ行かないんですか?
>
>755 名前:132人目の素数さん :2016/08/29(月) 16:30:34.20 ID:tk2e6+QZ
> 夏目漱石の遺作である明暗に小林って男がいて
> そいつは人に嫌われることに快感を見出し他人に迷惑をかけることに自分を見出す男なんだけど、猫の人生ってまさにそんな感じだな
> ごみみたいな論文しか書けなくて低学歴
>
>759 名前:132人目の素数さん :2016/08/29(月) 17:22:16.26 ID:3C5ckLv/
> 増田哲也 の銅像を建て、
> 古事記に 増田哲也命(ますだてつやのみこと) の痴漢話を追加して、
> 増田哲也 の悪行を後世に永遠に語り継ごう!
> ¥
>702 :132人目の素数さん 2016/08/28(日) 09:23:11.92 ID:TqV2rkX7
>荒らしじゃなくてリアル糖質やろ
>数学ってその記号の乱舞や得体のしれなさ感が思考漏出や侵入の妄想に侵されてる糖質を特にひきつけやすいんやろうな
>
>703 :132人目の素数さん 2016/08/28(日) 14:03:57.24 ID:HR+3VvKr
>増田とか決めつけてるやつなんなの。
>
>ただの統合失調症の患者だろ。
>ちょっと前にいた長文キチガイと同じ人物
>
>704 :132人目の素数さん 2016/08/28(日) 23:09:09.34 ID:zyy7a/SC
>お前の方こそマジなんなんだって感じだ。
>芳雄芳雄と騒いだりkmath1107の掲示板に粘着したりするやつは\=猫=Dr.Masudaしかいない。
>
>707 :132人目の素数さん 2016/08/29(月) 00:13:27.56 ID:a08IoyIs
>牟岐線の行楽へ行かないんですか?
>
>755 名前:132人目の素数さん :2016/08/29(月) 16:30:34.20 ID:tk2e6+QZ
> 夏目漱石の遺作である明暗に小林って男がいて
> そいつは人に嫌われることに快感を見出し他人に迷惑をかけることに自分を見出す男なんだけど、猫の人生ってまさにそんな感じだな
> ごみみたいな論文しか書けなくて低学歴
>
>759 名前:132人目の素数さん :2016/08/29(月) 17:22:16.26 ID:3C5ckLv/
> 増田哲也 の銅像を建て、
> 古事記に 増田哲也命(ますだてつやのみこと) の痴漢話を追加して、
> 増田哲也 の悪行を後世に永遠に語り継ごう!
> ¥
>702 :132人目の素数さん 2016/08/28(日) 09:23:11.92 ID:TqV2rkX7
>荒らしじゃなくてリアル糖質やろ
>数学ってその記号の乱舞や得体のしれなさ感が思考漏出や侵入の妄想に侵されてる糖質を特にひきつけやすいんやろうな
>
>703 :132人目の素数さん 2016/08/28(日) 14:03:57.24 ID:HR+3VvKr
>増田とか決めつけてるやつなんなの。
>
>ただの統合失調症の患者だろ。
>ちょっと前にいた長文キチガイと同じ人物
>
>704 :132人目の素数さん 2016/08/28(日) 23:09:09.34 ID:zyy7a/SC
>お前の方こそマジなんなんだって感じだ。
>芳雄芳雄と騒いだりkmath1107の掲示板に粘着したりするやつは\=猫=Dr.Masudaしかいない。
>
>707 :132人目の素数さん 2016/08/29(月) 00:13:27.56 ID:a08IoyIs
>牟岐線の行楽へ行かないんですか?
>
>755 名前:132人目の素数さん :2016/08/29(月) 16:30:34.20 ID:tk2e6+QZ
> 夏目漱石の遺作である明暗に小林って男がいて
> そいつは人に嫌われることに快感を見出し他人に迷惑をかけることに自分を見出す男なんだけど、猫の人生ってまさにそんな感じだな
> ごみみたいな論文しか書けなくて低学歴
>
>759 名前:132人目の素数さん :2016/08/29(月) 17:22:16.26 ID:3C5ckLv/
> 増田哲也 の銅像を建て、
> 古事記に 増田哲也命(ますだてつやのみこと) の痴漢話を追加して、
> 増田哲也 の悪行を後世に永遠に語り継ごう!
> ¥
>702 :132人目の素数さん 2016/08/28(日) 09:23:11.92 ID:TqV2rkX7
>荒らしじゃなくてリアル糖質やろ
>数学ってその記号の乱舞や得体のしれなさ感が思考漏出や侵入の妄想に侵されてる糖質を特にひきつけやすいんやろうな
>
>703 :132人目の素数さん 2016/08/28(日) 14:03:57.24 ID:HR+3VvKr
>増田とか決めつけてるやつなんなの。
>
>ただの統合失調症の患者だろ。
>ちょっと前にいた長文キチガイと同じ人物
>
>704 :132人目の素数さん 2016/08/28(日) 23:09:09.34 ID:zyy7a/SC
>お前の方こそマジなんなんだって感じだ。
>芳雄芳雄と騒いだりkmath1107の掲示板に粘着したりするやつは\=猫=Dr.Masudaしかいない。
>
>707 :132人目の素数さん 2016/08/29(月) 00:13:27.56 ID:a08IoyIs
>牟岐線の行楽へ行かないんですか?
>
>755 名前:132人目の素数さん :2016/08/29(月) 16:30:34.20 ID:tk2e6+QZ
> 夏目漱石の遺作である明暗に小林って男がいて
> そいつは人に嫌われることに快感を見出し他人に迷惑をかけることに自分を見出す男なんだけど、猫の人生ってまさにそんな感じだな
> ごみみたいな論文しか書けなくて低学歴
>
>759 名前:132人目の素数さん :2016/08/29(月) 17:22:16.26 ID:3C5ckLv/
> 増田哲也 の銅像を建て、
> 古事記に 増田哲也命(ますだてつやのみこと) の痴漢話を追加して、
> 増田哲也 の悪行を後世に永遠に語り継ごう!
> ¥
>702 :132人目の素数さん 2016/08/28(日) 09:23:11.92 ID:TqV2rkX7
>荒らしじゃなくてリアル糖質やろ
>数学ってその記号の乱舞や得体のしれなさ感が思考漏出や侵入の妄想に侵されてる糖質を特にひきつけやすいんやろうな
>
>703 :132人目の素数さん 2016/08/28(日) 14:03:57.24 ID:HR+3VvKr
>増田とか決めつけてるやつなんなの。
>
>ただの統合失調症の患者だろ。
>ちょっと前にいた長文キチガイと同じ人物
>
>704 :132人目の素数さん 2016/08/28(日) 23:09:09.34 ID:zyy7a/SC
>お前の方こそマジなんなんだって感じだ。
>芳雄芳雄と騒いだりkmath1107の掲示板に粘着したりするやつは\=猫=Dr.Masudaしかいない。
>
>707 :132人目の素数さん 2016/08/29(月) 00:13:27.56 ID:a08IoyIs
>牟岐線の行楽へ行かないんですか?
>
>755 名前:132人目の素数さん :2016/08/29(月) 16:30:34.20 ID:tk2e6+QZ
> 夏目漱石の遺作である明暗に小林って男がいて
> そいつは人に嫌われることに快感を見出し他人に迷惑をかけることに自分を見出す男なんだけど、猫の人生ってまさにそんな感じだな
> ごみみたいな論文しか書けなくて低学歴
>
>759 名前:132人目の素数さん :2016/08/29(月) 17:22:16.26 ID:3C5ckLv/
> 増田哲也 の銅像を建て、
> 古事記に 増田哲也命(ますだてつやのみこと) の痴漢話を追加して、
> 増田哲也 の悪行を後世に永遠に語り継ごう!
> ¥
>702 :132人目の素数さん 2016/08/28(日) 09:23:11.92 ID:TqV2rkX7
>荒らしじゃなくてリアル糖質やろ
>数学ってその記号の乱舞や得体のしれなさ感が思考漏出や侵入の妄想に侵されてる糖質を特にひきつけやすいんやろうな
>
>703 :132人目の素数さん 2016/08/28(日) 14:03:57.24 ID:HR+3VvKr
>増田とか決めつけてるやつなんなの。
>
>ただの統合失調症の患者だろ。
>ちょっと前にいた長文キチガイと同じ人物
>
>704 :132人目の素数さん 2016/08/28(日) 23:09:09.34 ID:zyy7a/SC
>お前の方こそマジなんなんだって感じだ。
>芳雄芳雄と騒いだりkmath1107の掲示板に粘着したりするやつは\=猫=Dr.Masudaしかいない。
>
>707 :132人目の素数さん 2016/08/29(月) 00:13:27.56 ID:a08IoyIs
>牟岐線の行楽へ行かないんですか?
>
>755 名前:132人目の素数さん :2016/08/29(月) 16:30:34.20 ID:tk2e6+QZ
> 夏目漱石の遺作である明暗に小林って男がいて
> そいつは人に嫌われることに快感を見出し他人に迷惑をかけることに自分を見出す男なんだけど、猫の人生ってまさにそんな感じだな
> ごみみたいな論文しか書けなくて低学歴
>
>759 名前:132人目の素数さん :2016/08/29(月) 17:22:16.26 ID:3C5ckLv/
> 増田哲也 の銅像を建て、
> 古事記に 増田哲也命(ますだてつやのみこと) の痴漢話を追加して、
> 増田哲也 の悪行を後世に永遠に語り継ごう!
> ¥
>702 :132人目の素数さん 2016/08/28(日) 09:23:11.92 ID:TqV2rkX7
>荒らしじゃなくてリアル糖質やろ
>数学ってその記号の乱舞や得体のしれなさ感が思考漏出や侵入の妄想に侵されてる糖質を特にひきつけやすいんやろうな
>
>703 :132人目の素数さん 2016/08/28(日) 14:03:57.24 ID:HR+3VvKr
>増田とか決めつけてるやつなんなの。
>
>ただの統合失調症の患者だろ。
>ちょっと前にいた長文キチガイと同じ人物
>
>704 :132人目の素数さん 2016/08/28(日) 23:09:09.34 ID:zyy7a/SC
>お前の方こそマジなんなんだって感じだ。
>芳雄芳雄と騒いだりkmath1107の掲示板に粘着したりするやつは\=猫=Dr.Masudaしかいない。
>
>707 :132人目の素数さん 2016/08/29(月) 00:13:27.56 ID:a08IoyIs
>牟岐線の行楽へ行かないんですか?
>
>755 名前:132人目の素数さん :2016/08/29(月) 16:30:34.20 ID:tk2e6+QZ
> 夏目漱石の遺作である明暗に小林って男がいて
> そいつは人に嫌われることに快感を見出し他人に迷惑をかけることに自分を見出す男なんだけど、猫の人生ってまさにそんな感じだな
> ごみみたいな論文しか書けなくて低学歴
>
>759 名前:132人目の素数さん :2016/08/29(月) 17:22:16.26 ID:3C5ckLv/
> 増田哲也 の銅像を建て、
> 古事記に 増田哲也命(ますだてつやのみこと) の痴漢話を追加して、
> 増田哲也 の悪行を後世に永遠に語り継ごう!
> >>674
subset関数などを使うということですか? ¥
>702 :132人目の素数さん 2016/08/28(日) 09:23:11.92 ID:TqV2rkX7
>荒らしじゃなくてリアル糖質やろ
>数学ってその記号の乱舞や得体のしれなさ感が思考漏出や侵入の妄想に侵されてる糖質を特にひきつけやすいんやろうな
>
>703 :132人目の素数さん 2016/08/28(日) 14:03:57.24 ID:HR+3VvKr
>増田とか決めつけてるやつなんなの。
>
>ただの統合失調症の患者だろ。
>ちょっと前にいた長文キチガイと同じ人物
>
>704 :132人目の素数さん 2016/08/28(日) 23:09:09.34 ID:zyy7a/SC
>お前の方こそマジなんなんだって感じだ。
>芳雄芳雄と騒いだりkmath1107の掲示板に粘着したりするやつは\=猫=Dr.Masudaしかいない。
>
>707 :132人目の素数さん 2016/08/29(月) 00:13:27.56 ID:a08IoyIs
>牟岐線の行楽へ行かないんですか?
>
>755 名前:132人目の素数さん :2016/08/29(月) 16:30:34.20 ID:tk2e6+QZ
> 夏目漱石の遺作である明暗に小林って男がいて
> そいつは人に嫌われることに快感を見出し他人に迷惑をかけることに自分を見出す男なんだけど、猫の人生ってまさにそんな感じだな
> ごみみたいな論文しか書けなくて低学歴
>
>759 名前:132人目の素数さん :2016/08/29(月) 17:22:16.26 ID:3C5ckLv/
> 増田哲也 の銅像を建て、
> 古事記に 増田哲也命(ますだてつやのみこと) の痴漢話を追加して、
> 増田哲也 の悪行を後世に永遠に語り継ごう!
> ¥
>702 :132人目の素数さん 2016/08/28(日) 09:23:11.92 ID:TqV2rkX7
>荒らしじゃなくてリアル糖質やろ
>数学ってその記号の乱舞や得体のしれなさ感が思考漏出や侵入の妄想に侵されてる糖質を特にひきつけやすいんやろうな
>
>703 :132人目の素数さん 2016/08/28(日) 14:03:57.24 ID:HR+3VvKr
>増田とか決めつけてるやつなんなの。
>
>ただの統合失調症の患者だろ。
>ちょっと前にいた長文キチガイと同じ人物
>
>704 :132人目の素数さん 2016/08/28(日) 23:09:09.34 ID:zyy7a/SC
>お前の方こそマジなんなんだって感じだ。
>芳雄芳雄と騒いだりkmath1107の掲示板に粘着したりするやつは\=猫=Dr.Masudaしかいない。
>
>707 :132人目の素数さん 2016/08/29(月) 00:13:27.56 ID:a08IoyIs
>牟岐線の行楽へ行かないんですか?
>
>755 名前:132人目の素数さん :2016/08/29(月) 16:30:34.20 ID:tk2e6+QZ
> 夏目漱石の遺作である明暗に小林って男がいて
> そいつは人に嫌われることに快感を見出し他人に迷惑をかけることに自分を見出す男なんだけど、猫の人生ってまさにそんな感じだな
> ごみみたいな論文しか書けなくて低学歴
>
>759 名前:132人目の素数さん :2016/08/29(月) 17:22:16.26 ID:3C5ckLv/
> 増田哲也 の銅像を建て、
> 古事記に 増田哲也命(ますだてつやのみこと) の痴漢話を追加して、
> 増田哲也 の悪行を後世に永遠に語り継ごう!
> ¥
>702 :132人目の素数さん 2016/08/28(日) 09:23:11.92 ID:TqV2rkX7
>荒らしじゃなくてリアル糖質やろ
>数学ってその記号の乱舞や得体のしれなさ感が思考漏出や侵入の妄想に侵されてる糖質を特にひきつけやすいんやろうな
>
>703 :132人目の素数さん 2016/08/28(日) 14:03:57.24 ID:HR+3VvKr
>増田とか決めつけてるやつなんなの。
>
>ただの統合失調症の患者だろ。
>ちょっと前にいた長文キチガイと同じ人物
>
>704 :132人目の素数さん 2016/08/28(日) 23:09:09.34 ID:zyy7a/SC
>お前の方こそマジなんなんだって感じだ。
>芳雄芳雄と騒いだりkmath1107の掲示板に粘着したりするやつは\=猫=Dr.Masudaしかいない。
>
>707 :132人目の素数さん 2016/08/29(月) 00:13:27.56 ID:a08IoyIs
>牟岐線の行楽へ行かないんですか?
>
>755 名前:132人目の素数さん :2016/08/29(月) 16:30:34.20 ID:tk2e6+QZ
> 夏目漱石の遺作である明暗に小林って男がいて
> そいつは人に嫌われることに快感を見出し他人に迷惑をかけることに自分を見出す男なんだけど、猫の人生ってまさにそんな感じだな
> ごみみたいな論文しか書けなくて低学歴
>
>759 名前:132人目の素数さん :2016/08/29(月) 17:22:16.26 ID:3C5ckLv/
> 増田哲也 の銅像を建て、
> 古事記に 増田哲也命(ますだてつやのみこと) の痴漢話を追加して、
> 増田哲也 の悪行を後世に永遠に語り継ごう!
> 実時間が入っているデータで、一定幅の「時間帯」をラベルにするような方法はあるでしょうか? >>700
POSIXlt型に変換されているならcut関数を使えばいける。breaks=に"hour"とか区切り方を指定すればOK 相関係数の標本分布の図を出力したいです。
リンクの画像みたいな奴
ttps://www.sitmo.com/wp-content/uploads/2012/03/correlation_dist_vs_rho.png
ずばり式なり、プログラミングなり教えてくれ。 ¥
>347 名前:132人目の素数さん :2016/09/22(木) 01:38:42.56 ID:CSzeBKOI
> 337 名前:あぼ〜ん[NGName:¥ </b>◆2VB8wsVUoo <b>] 投稿日:あぼ〜ん
>
> 338 名前:あぼ〜ん[NGName:¥ </b>◆2VB8wsVUoo <b>] 投稿日:あぼ〜ん
>
> 339 名前:あぼ〜ん[NGName:¥ </b>◆2VB8wsVUoo <b>] 投稿日:あぼ〜ん
>
> 340 名前:あぼ〜ん[NGName:¥ </b>◆2VB8wsVUoo <b>] 投稿日:あぼ〜ん
>
> 341 名前:あぼ〜ん[NGName:¥ </b>◆2VB8wsVUoo <b>] 投稿日:あぼ〜ん
>
> 342 名前:あぼ〜ん[NGName:¥ </b>◆2VB8wsVUoo <b>] 投稿日:あぼ〜ん
>
> 343 名前:あぼ〜ん[NGName:¥ </b>◆2VB8wsVUoo <b>] 投稿日:あぼ〜ん
>
> 344 名前:あぼ〜ん[NGName:¥ </b>◆2VB8wsVUoo <b>] 投稿日:あぼ〜ん
>
> 345 名前:あぼ〜ん[NGName:¥ </b>◆2VB8wsVUoo <b>] 投稿日:あぼ〜ん
>
> 346 名前:あぼ〜ん[NGName:¥ </b>◆2VB8wsVUoo <b>] 投稿日:あぼ〜ん
> >>714
式ありがとうございます。
Rで相関係数の標本分布の図を描くプログラミングも知りたいのでどなたか教えてください。 ¥
>347 名前:132人目の素数さん :2016/09/22(木) 01:38:42.56 ID:CSzeBKOI
> 337 名前:あぼ〜ん[NGName:¥ </b>◆2VB8wsVUoo <b>] 投稿日:あぼ〜ん
>
> 338 名前:あぼ〜ん[NGName:¥ </b>◆2VB8wsVUoo <b>] 投稿日:あぼ〜ん
>
> 339 名前:あぼ〜ん[NGName:¥ </b>◆2VB8wsVUoo <b>] 投稿日:あぼ〜ん
>
> 340 名前:あぼ〜ん[NGName:¥ </b>◆2VB8wsVUoo <b>] 投稿日:あぼ〜ん
>
> 341 名前:あぼ〜ん[NGName:¥ </b>◆2VB8wsVUoo <b>] 投稿日:あぼ〜ん
>
> 342 名前:あぼ〜ん[NGName:¥ </b>◆2VB8wsVUoo <b>] 投稿日:あぼ〜ん
>
> 343 名前:あぼ〜ん[NGName:¥ </b>◆2VB8wsVUoo <b>] 投稿日:あぼ〜ん
>
> 344 名前:あぼ〜ん[NGName:¥ </b>◆2VB8wsVUoo <b>] 投稿日:あぼ〜ん
>
> 345 名前:あぼ〜ん[NGName:¥ </b>◆2VB8wsVUoo <b>] 投稿日:あぼ〜ん
>
> 346 名前:あぼ〜ん[NGName:¥ </b>◆2VB8wsVUoo <b>] 投稿日:あぼ〜ん
> >>716
library(SuppDists)
N<-10
y1<-rPearson(n=100000, N, rho=0)
y2<-rPearson(n=100000, N, rho=0.25)
y3<-rPearson(n=100000, N, rho=0.5)
plot(density(y1),xlim=c(-1.5,1.5),ylim=c(0,1.6))
lines(density(y2),col=2)
lines(density(y3),col=3) >>718
SuppDistsを入れて、動かしてみました。
思っていたものです。
ありがとうございます。
いろいろ数字をいじってみます。 ¥
>347 名前:132人目の素数さん :2016/09/22(木) 01:38:42.56 ID:CSzeBKOI
> 337 名前:あぼ〜ん[NGName:¥ </b>◆2VB8wsVUoo <b>] 投稿日:あぼ〜ん
>
> 338 名前:あぼ〜ん[NGName:¥ </b>◆2VB8wsVUoo <b>] 投稿日:あぼ〜ん
>
> 339 名前:あぼ〜ん[NGName:¥ </b>◆2VB8wsVUoo <b>] 投稿日:あぼ〜ん
>
> 340 名前:あぼ〜ん[NGName:¥ </b>◆2VB8wsVUoo <b>] 投稿日:あぼ〜ん
>
> 341 名前:あぼ〜ん[NGName:¥ </b>◆2VB8wsVUoo <b>] 投稿日:あぼ〜ん
>
> 342 名前:あぼ〜ん[NGName:¥ </b>◆2VB8wsVUoo <b>] 投稿日:あぼ〜ん
>
> 343 名前:あぼ〜ん[NGName:¥ </b>◆2VB8wsVUoo <b>] 投稿日:あぼ〜ん
>
> 344 名前:あぼ〜ん[NGName:¥ </b>◆2VB8wsVUoo <b>] 投稿日:あぼ〜ん
>
> 345 名前:あぼ〜ん[NGName:¥ </b>◆2VB8wsVUoo <b>] 投稿日:あぼ〜ん
>
> 346 名前:あぼ〜ん[NGName:¥ </b>◆2VB8wsVUoo <b>] 投稿日:あぼ〜ん
> r2norm <- function(n, mu, sigma, rho) {
tmp <- rnorm(n)
x <- mu+sigma*tmp
y <- rho*x + sqrt(1-rho^2)*rnorm(n)
return(data.frame(x=x,y=y))
}
mydata <- r2norm(100, 0, 1, 0.5)
cor(mydata$x,mydata$y)
x1 <- numeric(length=10000)
for (i in 1:10000) {mydata <- r2norm(10, 0, 1, 0)
s<- cor(mydata$x,mydata$y)
x1[i] <- s}
x2 <- numeric(length=10000)
for (i in 1:10000) {mydata <- r2norm(10, 0, 1, .25)
s2<- cor(mydata$x,mydata$y)
x2[i] <- s2}
x3 <- numeric(length=10000)
for (i in 1:10000) {mydata <- r2norm(10, 0, 1, .5)
s3<- cor(mydata$x,mydata$y)
x3[i] <- s3}
plot(density(x1),xlim=c(-1.5,1.5),ylim=c(0,1.6))
lines(density(x2),col=2)
lines(density(x3),col=3) >>721は、>>718に触発されて作ってみました。
複数のサイトのコピペで作っただけですが、なんだか、スッキリしました。
>>718さん、改めてありがとうございました。 ¥
>347 名前:132人目の素数さん :2016/09/22(木) 01:38:42.56 ID:CSzeBKOI
> 337 名前:あぼ〜ん[NGName:¥ </b>◆2VB8wsVUoo <b>] 投稿日:あぼ〜ん
>
> 338 名前:あぼ〜ん[NGName:¥ </b>◆2VB8wsVUoo <b>] 投稿日:あぼ〜ん
>
> 339 名前:あぼ〜ん[NGName:¥ </b>◆2VB8wsVUoo <b>] 投稿日:あぼ〜ん
>
> 340 名前:あぼ〜ん[NGName:¥ </b>◆2VB8wsVUoo <b>] 投稿日:あぼ〜ん
>
> 341 名前:あぼ〜ん[NGName:¥ </b>◆2VB8wsVUoo <b>] 投稿日:あぼ〜ん
>
> 342 名前:あぼ〜ん[NGName:¥ </b>◆2VB8wsVUoo <b>] 投稿日:あぼ〜ん
>
> 343 名前:あぼ〜ん[NGName:¥ </b>◆2VB8wsVUoo <b>] 投稿日:あぼ〜ん
>
> 344 名前:あぼ〜ん[NGName:¥ </b>◆2VB8wsVUoo <b>] 投稿日:あぼ〜ん
>
> 345 名前:あぼ〜ん[NGName:¥ </b>◆2VB8wsVUoo <b>] 投稿日:あぼ〜ん
>
> 346 名前:あぼ〜ん[NGName:¥ </b>◆2VB8wsVUoo <b>] 投稿日:あぼ〜ん
> 図々しいのですが、加えて質問をさせてください。
ランダム生成からのplotではなく、
確率密度関数によって、きれいにplotするプログラミンも教えてもらえませんか。 ¥
>347 名前:132人目の素数さん :2016/09/22(木) 01:38:42.56 ID:CSzeBKOI
> 337 名前:あぼ〜ん[NGName:¥ </b>◆2VB8wsVUoo <b>] 投稿日:あぼ〜ん
>
> 338 名前:あぼ〜ん[NGName:¥ </b>◆2VB8wsVUoo <b>] 投稿日:あぼ〜ん
>
> 339 名前:あぼ〜ん[NGName:¥ </b>◆2VB8wsVUoo <b>] 投稿日:あぼ〜ん
>
> 340 名前:あぼ〜ん[NGName:¥ </b>◆2VB8wsVUoo <b>] 投稿日:あぼ〜ん
>
> 341 名前:あぼ〜ん[NGName:¥ </b>◆2VB8wsVUoo <b>] 投稿日:あぼ〜ん
>
> 342 名前:あぼ〜ん[NGName:¥ </b>◆2VB8wsVUoo <b>] 投稿日:あぼ〜ん
>
> 343 名前:あぼ〜ん[NGName:¥ </b>◆2VB8wsVUoo <b>] 投稿日:あぼ〜ん
>
> 344 名前:あぼ〜ん[NGName:¥ </b>◆2VB8wsVUoo <b>] 投稿日:あぼ〜ん
>
> 345 名前:あぼ〜ん[NGName:¥ </b>◆2VB8wsVUoo <b>] 投稿日:あぼ〜ん
>
> 346 名前:あぼ〜ん[NGName:¥ </b>◆2VB8wsVUoo <b>] 投稿日:あぼ〜ん
> >>724
x<-seq(from=-1.5,to=1.5,length.out = 1000)
d1<-dPearson(x = x,N = 10,rho = 0)
d2<-dPearson(x = x,N = 10,rho = 0.25)
d3<-dPearson(x = x,N = 10,rho = 0.5)
plot(x,d1,type="l",col=1,ylim=c(0,1.6))
lines(x,d2,col=2)
lines(x,d3,col=3) ¥
>347 名前:132人目の素数さん :2016/09/22(木) 01:38:42.56 ID:CSzeBKOI
> 337 名前:あぼ〜ん[NGName:¥ </b>◆2VB8wsVUoo <b>] 投稿日:あぼ〜ん
>
> 338 名前:あぼ〜ん[NGName:¥ </b>◆2VB8wsVUoo <b>] 投稿日:あぼ〜ん
>
> 339 名前:あぼ〜ん[NGName:¥ </b>◆2VB8wsVUoo <b>] 投稿日:あぼ〜ん
>
> 340 名前:あぼ〜ん[NGName:¥ </b>◆2VB8wsVUoo <b>] 投稿日:あぼ〜ん
>
> 341 名前:あぼ〜ん[NGName:¥ </b>◆2VB8wsVUoo <b>] 投稿日:あぼ〜ん
>
> 342 名前:あぼ〜ん[NGName:¥ </b>◆2VB8wsVUoo <b>] 投稿日:あぼ〜ん
>
> 343 名前:あぼ〜ん[NGName:¥ </b>◆2VB8wsVUoo <b>] 投稿日:あぼ〜ん
>
> 344 名前:あぼ〜ん[NGName:¥ </b>◆2VB8wsVUoo <b>] 投稿日:あぼ〜ん
>
> 345 名前:あぼ〜ん[NGName:¥ </b>◆2VB8wsVUoo <b>] 投稿日:あぼ〜ん
>
> 346 名前:あぼ〜ん[NGName:¥ </b>◆2VB8wsVUoo <b>] 投稿日:あぼ〜ん
> >>726
まことに、ありがとうございました。
教えていただいたプログラミングの意味を勉強します。 ¥
>347 名前:132人目の素数さん :2016/09/22(木) 01:38:42.56 ID:CSzeBKOI
> 337 名前:あぼ〜ん[NGName:¥ </b>◆2VB8wsVUoo <b>] 投稿日:あぼ〜ん
>
> 338 名前:あぼ〜ん[NGName:¥ </b>◆2VB8wsVUoo <b>] 投稿日:あぼ〜ん
>
> 339 名前:あぼ〜ん[NGName:¥ </b>◆2VB8wsVUoo <b>] 投稿日:あぼ〜ん
>
> 340 名前:あぼ〜ん[NGName:¥ </b>◆2VB8wsVUoo <b>] 投稿日:あぼ〜ん
>
> 341 名前:あぼ〜ん[NGName:¥ </b>◆2VB8wsVUoo <b>] 投稿日:あぼ〜ん
>
> 342 名前:あぼ〜ん[NGName:¥ </b>◆2VB8wsVUoo <b>] 投稿日:あぼ〜ん
>
> 343 名前:あぼ〜ん[NGName:¥ </b>◆2VB8wsVUoo <b>] 投稿日:あぼ〜ん
>
> 344 名前:あぼ〜ん[NGName:¥ </b>◆2VB8wsVUoo <b>] 投稿日:あぼ〜ん
>
> 345 名前:あぼ〜ん[NGName:¥ </b>◆2VB8wsVUoo <b>] 投稿日:あぼ〜ん
>
> 346 名前:あぼ〜ん[NGName:¥ </b>◆2VB8wsVUoo <b>] 投稿日:あぼ〜ん
> みんな頭いいんだなぁ
勉強中だけどさっぱり分からん ¥
>347 名前:132人目の素数さん :2016/09/22(木) 01:38:42.56 ID:CSzeBKOI
> 337 名前:あぼ〜ん[NGName:¥ </b>◆2VB8wsVUoo <b>] 投稿日:あぼ〜ん
>
> 338 名前:あぼ〜ん[NGName:¥ </b>◆2VB8wsVUoo <b>] 投稿日:あぼ〜ん
>
> 339 名前:あぼ〜ん[NGName:¥ </b>◆2VB8wsVUoo <b>] 投稿日:あぼ〜ん
>
> 340 名前:あぼ〜ん[NGName:¥ </b>◆2VB8wsVUoo <b>] 投稿日:あぼ〜ん
>
> 341 名前:あぼ〜ん[NGName:¥ </b>◆2VB8wsVUoo <b>] 投稿日:あぼ〜ん
>
> 342 名前:あぼ〜ん[NGName:¥ </b>◆2VB8wsVUoo <b>] 投稿日:あぼ〜ん
>
> 343 名前:あぼ〜ん[NGName:¥ </b>◆2VB8wsVUoo <b>] 投稿日:あぼ〜ん
>
> 344 名前:あぼ〜ん[NGName:¥ </b>◆2VB8wsVUoo <b>] 投稿日:あぼ〜ん
>
> 345 名前:あぼ〜ん[NGName:¥ </b>◆2VB8wsVUoo <b>] 投稿日:あぼ〜ん
>
> 346 名前:あぼ〜ん[NGName:¥ </b>◆2VB8wsVUoo <b>] 投稿日:あぼ〜ん
> 馬鹿板遊びはもうヤメレ。頭の悪い奴が跋扈したらアカンやろ。東京都庁
みたいにナルぞ。
¥ year month income expense diff
2016 07 50 15 35
2016 08 30 70 -40
このようなdata.frameがあります。
その月毎のincomeとexpenseをこの順に左からならべてbarplotにしたいです。
2016年7月分はincomeを(2016-07,-15)と(2016-07, 35)の間の縦棒、expenseは(2016-07, -15)と(2016-07,0)の間の縦棒。この2本はくっつけて表示させたいです。
次の2016年8月分はincome(2016-08, 0)と(2016-08, 30)の間の縦棒、expenseは(2016-08, -40)と(2016-08,30)の間の縦棒を描画したいです。この2つは7月分とは少し離して描画できないでしょうか。
よろしくお願いします。 馬鹿板遊びはもうヤメレ。頭の悪い奴が跋扈したらアカンやろ。東京都庁
みたいにナルぞ。
¥ 馬鹿板遊びはもうヤメレ。頭の悪い奴が跋扈したらアカンやろ。東京都庁
みたいにナルぞ。
¥ >>743
とりあえず、ヒントだけ。
> d <- data.frame(i = 1:5, e = 1:5)
> barplot(t(d[, c("i", "e")]), beside = TRUE, names.arg = paste(7:11, "月")) > 757
ヒントありがとうございます。
year<- c(2016,2016)
month<-c(07,08)
income<-c(50,30)
expense<-c(15,70)
diff<-c(35,-40)
(dtt<-data.frame(YEAR=year, MONTH=month, INCOME=income, EXPENSE=expense, DIFF=diff))
dttm<-as.matrix(dtt)
barplot(t(dttm[,c(3,4)]), beside=TRUE)
教えてもらったここまではできました。 馬鹿板遊びはもうヤメレ。頭の悪い奴が跋扈したらアカンやろ。東京都庁
みたいにナルぞ。
¥ rect()とかでbarを描画していくしかないでしょうか。
barplotのままでbarをshiftさせていくのは難しいか。 若い奴を相手にして、『人前ではメッキで遣り過ごせ!』と教える芳雄が、
何と「研究者としての基本的態度」を申し述べ、毎晩の様に連呼して、そ
の重要性を訴えてた。所が芳雄は一向に「何をどうスル事なのか」を説明
せず、子供の私は日々頭を悩ませた。普通に考えれば、ソレは:
★★★「研究対象に向かう時にどういう風に頭を使って考えて創造的になるか」★★★
であろう。そして試行錯誤を繰り返しながら失敗を重ね、その度毎に芳雄
に罵倒され、そして「釜ヶ崎へ行け!」と恐喝された。
でも芳雄を良く観察し、そして:
★★★『芳雄と一緒になって母親を無根拠に罵倒したら「芳雄は大喜び」した!』★★★
ので、やっと理解した。芳雄が言う「研究者としての基本的態度」とは:
1.その場の自分の損得を考える。
2.何も考えずに「芳雄に同調」スル。
3.発言の中身を空虚にして、表現にだけ注意して敬語を使う。
という様な事であり、要は『顔色を窺って、その場を繕え』という事だ。
コレを理解した時はホンマに嬉しかった。芳雄のオツムが『サル並である』
という定理を証明した瞬間だった。
¥ 久しぶりに来たらなんだこれ
なんかRに恨みでもあんのか 馬鹿板遊びはもうヤメレ。頭の悪い奴が跋扈したらアカンやろ。東京都庁
みたいにナルぞ。
¥ >>785
あなたが何をやりたいのがこちらに伝わったら、
多分回答できると思うけど、やっぱり分からない。
丁寧に説明しようと努力しているのはひしひしと伝わるのだが。
とりあえず、水色とクリーム色の棒グラフを再現すれば次のようようになる。
1. 描画する数値を計算する
m1 <- matrix(c(30,0,30,30), 2)
m2 <- matrix(c(-15,-15,0,-40), 2)
2. 描く
barplot(m1, beside = TRUE, ylim = c(-40, 40))
barplot(m2, beside = TRUE, add = TRUE) >>801
abline(h=0)
を忘れていた。追加。 基準点をあわせるように自分でベクトルを平行移動させないと多分ムリ
何をやりたいのかは俺もさっぱり分からないけどw x
month income_expense
1 2016-07 50
2 2016-07 -15
3 2016-08 30
4 2016-08 -75
x$id <- seq_along(x$income_expense)
x$type <- ifelse(x$income_expense > 0, "in",
"out")
x[x$month %in% c("Starting Cash", "End Cash"),
"type"] <- "net"
month_type <- paste(x$month, x$type, sep="-")
x.paste<-cbind(x, month_type)
for (i in 1:(length(x.paste)/2)) {
x.paste$start5[2*i-1] <- ifelse(abs(x.paste$income_expense[2*i-1]) > abs(x.paste$income_expense[2*i]) , x.paste$income_expense[2*i],
0)
x.paste$end5[2*i-1] <- ifelse(abs(x.paste$income_expense[2*i-1]) > abs(x.paste$income_expense[2*i]) , x.paste$income_expense[2*i-1]+x.paste$income_expense[2*i],
x.paste$income_expense[2*i-1])
x.paste$start5[2*i] <- ifelse(abs(x.paste$income_expense[2*i-1]) > abs(x.paste$income_expense[2*i]) ,x.paste$income_expense[2*i] ,
x.paste$income_expense[2*i-1]+x.paste$income_expense[2*i])
x.paste$end5[2*i] <- ifelse(abs(x.paste$income_expense[2*i-1]) > abs(x.paste$income_expense[2*i]) , 0,
x.paste$income_expense[2*i-1])
}
png("Waterfall_bs01.png", width = 500, height = 300, pointsize = 12, bg = "white")
library(ggplot2)
ggplot(x.paste, aes(month_type, fill = type)) + geom_rect(aes(x = month_type,
xmin = id - 0.45, xmax = id + 0.45, ymin = end5,
ymax = start5))
graphics.off()
>> 801さん, 803さん
返答ありがとうございました。
基準線を合わせるように自分でベクトル平行移動させました。
geom_rectで描くことができました。
ありがとうございました。 ¥
>347 名前:132人目の素数さん :2016/09/22(木) 01:38:42.56 ID:CSzeBKOI
> 337 名前:あぼ〜ん[NGName:¥ </b>◆2VB8wsVUoo <b>] 投稿日:あぼ〜ん
>
> 338 名前:あぼ〜ん[NGName:¥ </b>◆2VB8wsVUoo <b>] 投稿日:あぼ〜ん
>
> 339 名前:あぼ〜ん[NGName:¥ </b>◆2VB8wsVUoo <b>] 投稿日:あぼ〜ん
>
> 340 名前:あぼ〜ん[NGName:¥ </b>◆2VB8wsVUoo <b>] 投稿日:あぼ〜ん
>
> 341 名前:あぼ〜ん[NGName:¥ </b>◆2VB8wsVUoo <b>] 投稿日:あぼ〜ん
>
> 342 名前:あぼ〜ん[NGName:¥ </b>◆2VB8wsVUoo <b>] 投稿日:あぼ〜ん
>
> 343 名前:あぼ〜ん[NGName:¥ </b>◆2VB8wsVUoo <b>] 投稿日:あぼ〜ん
>
> 344 名前:あぼ〜ん[NGName:¥ </b>◆2VB8wsVUoo <b>] 投稿日:あぼ〜ん
>
> 345 名前:あぼ〜ん[NGName:¥ </b>◆2VB8wsVUoo <b>] 投稿日:あぼ〜ん
>
> 346 名前:あぼ〜ん[NGName:¥ </b>◆2VB8wsVUoo <b>] 投稿日:あぼ〜ん
> R初心者の者です。
> c <- 10
> c(c = c)
c
10
となる理由がよく分かりません。
2行目のうち、最初のcが関数で、次のcがただの文字、最後のcが1行目のc(=10)ということですか?
よろしくお願いします。 ¥
>191 名前:132人目の素数さん :2016/10/12(水) 14:26:06.21 ID:5WGW5M4m
> 「筑波大学准教授の強制わいせつ痴漢行為」に思う | 月光院璋子の日記
> http://plaza.rakuten.co.jp/gekkouinnblog/diary/200708060000/
>
> 芳雄「哲也の話にするな、忘れろ!奴は増田家の恥、もはや養子でさえない」
> ¥
>673 名前:132人目の素数さん :2016/10/20(木) 08:48:57.82 ID:1+lfflhP
> 阪大ごときで研究者目指したらアカンやろw
>
>674 名前:¥ ◆2VB8wsVUoo :2016/10/20(木) 08:53:56.11 ID:4i85UFaq
> ホウ、なるほどナ。
>
> ¥
>
>675 名前:¥ ◆2VB8wsVUoo :2016/10/20(木) 09:21:36.53 ID:4i85UFaq
> そやし東大と京大以外の大学院は全部閉鎖せんとアカンわ。無駄やさかいナ。
>
> ¥
>
>676 名前:¥ ◆2VB8wsVUoo :2016/10/20(木) 09:28:07.86 ID:4i85UFaq
> ほんで宮廷以外の数学科かて全部閉鎖せんとアカンわ。馬鹿板人みたいな
> 低能ゾンビばっかし居っても税金の無駄にナルだけで役に立たへんしナ。
>
> ¥
> >>819
これ何かの本で見た覚えがあるんだけど思い出せない >>850
ああ。今確認した。エクササイズ6.2.5の1か。
c(c=c)の最初のcがcombine関数の関数(省略)名cで、
二番目のc(c関数の引数の左辺値)がベクトルの構成要素の名前を定義するcで、
三番目のc(c関数の引数の右辺値)が前の行でcという名前で定義されているオブジェクト(の値)。 ¥
>269 名前:132人目の素数さん :2016/09/24(土) 11:16:21.64 ID:ERaem3b8
> 生活保護受給者の三割がメタボだそうだ
> マス哲もそうなのか?
>
>270 名前:¥ ◆2VB8wsVUoo :2016/09/24(土) 12:04:07.63 ID:gc7JIRwz
> 粗食してますんで、太ってはいますがまあ大丈夫そうですわ。今は精神科
> 系の強い薬物が一切必要が無いので、在任中よりも猛烈に健康になったと
> 思いますね。ストレスが何も無いっちゅうんはホンマに有り難いですわ。
>
> ¥
>
>271 名前:132人目の素数さん :2016/10/22(土) 11:25:03.06 ID:EFTkFzKF
> どぴゅ
>
>501 名前:132人目の素数さん :2016/06/11(土) 12:35:37.39 ID:Ise/AxZk
>
> 哲也はコンヌの黒歴史
>
>502 名前:132人目の素数さん :2016/10/22(土) 11:24:37.17 ID:EFTkFzKF
> どぴゅ
> Rってどれくらい使えたら役に立つんだ?ベイズ階層位はできんとだめ? >>865
Stanを使えばベイズ階層も苦にならない。
Samplingの待ち時間が苦痛かも。 >>867
おかげでアップデートに気づいたわ
ちなみにyou stupid darknessってどういう意味やろか? 1. なにそれ?
2. 暗いと不平を言うよりも、すすんで灯りをつけましょうって聞いたんだ。
3. それはそうだけど、世の常としてそう思わない人もいるだろうね。
4. 暗いぞバカヤロー!
って感じかな? 取引先の、統計をやってるという人と話をした。
名刺には「シニアスタティスティシャン」と書いてある。
話しをしてみると、統計学のダメな入門書に書いてあるような
大ウソを堂々と主張する。
だが相手は取引先であるから、「馬鹿かてめーは!」とか言えない。
言えないからここに書くのだが、
名刺に「シニアスタティスティシャン」とか書くなよ馬鹿たれが! >>868
Stanって知らんかった。
便利そうだな使ってみる。
ありがとう! >>870
>>871
ありがとう
ピーナッツが読めるぐらいに英語が堪能ならなぁ >>875今の現代数学は間違ってできてるため、すうじでフっ素をあらわしてる。
そのため、人をすいとる。養分の話しか、してない。数学が人を、おしつぶして、時をすいとってしまった
数式をかえよう
X(f)が、あらたな、人を救う。数式。だということになるよね 4代元素が、すべて、支払いをし、責任をおうべきだと、思う。この世は、人間をつくり、だまし、最後には、すう式で、すいとってしまい、4代元素は次第には、元素になり、死にいたらしめる、などフリーメーソンなどつくった、元素からの安易な暗号の挑戦状なんだと思う >>875 a+b=abでいい。c+c=ccでいいと思うんだけど…
同じものを+んだから、同じものになればいいわけで。a×90乗=aで、いいいわけじゃない。なんか、変化して元素に、なるなら、回りのものも、全部元素にならないと、いけないのに、自分たちは、固くのこってて、これを、やりたいなら、人が死んでから、やるべき >>878固くのこされた人の気持ちを考えるべき。だE=MC2にしたって
E=C2で、やるべきなのに、添字にMを、そえて、そのエネルギーの座標に、人間をさしかえてるだけの、話しでね、
時間一次元と空間3次元の4成分だけ、もたされて、それを、吸う、すう、しき、とか、うけとるだけやないか。元素って。最初からE=C2で、この世を回すべき。
E=Mにかきかえるべきだ。それが、正しいと思うし。正当的。アルケーが歩け
元素はまちがった空間をつくっている
E=C2、または、E=M、で、場をつくるべき
相対性理論はまちがっている
死後の世界観を座標に4つ、ひきつける空間をもたせて、座標に吸わせることを、表しており、正当性のかけらもない
死後なら死後で座標をCがやればいい。わけで、それを有限にしており、できなかった、のだ
だから、元素が悪いのだすべて火、土、水、空に原因がある 数値の20170501を2017-05-01ってな感じで日付に変換したいんですが、何か良い方法はないでしょうか。
力技は考えたんですが、100万行くらい変換しないといけないので、力技以外で変換したいんです。 as.Date("20170501",format = "%Y%m%d") R version 3.1.1ユーザです。
> a = 5
> is.double(a)
[1] TRUE
> is.integer(a)
[1] FALSE
のようにTRUEとFALSEが逆になってしまうのはなぜなんでしょう。
整数を代入するだけでは整数だと予測してくれないんでしょうか? ¥
>112 名前:¥ ◇2VB8wsVUoo 2017/06/15(木) 08:39:06.70 ID:7Rm0/VD6
> ★★★数学徒は情熱的な霊感により主観的に暮らし、唯ひたすら自己の世界に沈潜すべき。★★★
>
> 佐藤幹夫を見よ、ラマヌジャンを見よ
>
> 本物の¥
> >>907
その代入だと実数として扱われる
a <- 5L
とすれば整数として扱われるようになる ¥
>112 名前:¥ ◇2VB8wsVUoo 2017/06/15(木) 08:39:06.70 ID:7Rm0/VD6
> ★★★数学徒は情熱的な霊感により主観的に暮らし、唯ひたすら自己の世界に沈潜すべき。★★★
>
> 佐藤幹夫を見よ、ラマヌジャンを見よ
>
> 本物の¥
> >>909様
ユーザーが明示的に指定してやらないとすべて実数になっちゃうんですね?
お答えくださってどうも有難うございました。 ★★★忖度と処世術に汚染された日本人:権威主義的な支配と損したくない人達★★★
〜〜〜芳雄氏が言う『研究者としての基本的態度』とは一体何だろうか〜〜〜
佐藤幹夫:自分自身の素朴な疑問に真剣に耳を傾ける。⇒不滅の金字塔を打ち立てる。
糞父芳雄:人間関係を駆使し他人を操り根回しを行う。⇒ハリボテお教授として君臨。
隠蔽の財務省、嘘吐きの文科省、そして問答無用に屈服させる官邸。コレでも先進国?
(佐藤師がしてたのは本物の研究だ。だが)芳雄氏がしてたのはケケケ、ケンキュウ。
外見を繕って偉そう見せさえすれば何でもヨロシ。ほんで教授になりさえすれば研究の
中身なんて何でもヨロシ。そもそも論文なんてモンは、外国の権威ある雑誌に掲載され
さえすれば、その中身のギロンなんて何でもヨロシ。そやし適当に書いてしまえ〜〜〜
中身がダメだと知ってて、ソレでもSTAP論文を外国に投稿して受理される。発覚したら
適当に言い逃れる醜い態度。オツムのダメな大学院生に「虚偽の良品ラベル」を貼って
世間に出荷するハリボテ大学は詐欺行為そのもの。世間に媚びを売って客商売に徹し、
『売れさえすれば学生の脳の質なんて何でもヨロシ』と居直る大学。そしてブランド名
だけを見て仕入れる世間。●●は一流大学やさかい、きっと優秀なエリートやろwww
中身を何も説明しないで、問答無用に上から押し付ける。ソレをイチャモンで騒いで、
そして邪魔して潰そうとする周囲の下々。大学教員も国会議事堂も、そして馬鹿板人の
遣ってる事も皆同じだ。日本人はバカ民族であり、今は外国にもちゃんとバレてるので
海外からも軽蔑されるだけであり、そのうちにどの国からも信用されなくなるだろう。
近視眼的で打算的な人生観を息子に押し付ける父親と、大脳に栄養が足りてない連中が
跋扈する永田町や霞が関に支配される国に住む不幸、一体どうしてくれるというのか。
☆☆☆数学徒が馬鹿板をしたらダメ。さもないと国家議事堂みたいになります。☆☆☆
¥ 下のy式をもっとスマートに書く方法を教えてください
つまり、yの式は実際には+1, +2 …, +100までしなくてはいけないのです。
x <- 1:10
y <- c(sum((x+1)^2), sum((x+2)^2), sum((x+3)^2), …, sum((x+100)^2))
よろしくお願いします。 z<-c()
for(i in 1:100){
z<-c(z, sum(x+i)^2))
}
でもできるけどダメ? 〒〒〒馬鹿板は悪い習慣であり、この行為は脳を悪くする。そやし足を洗いなさい。〒〒〒
¥ >>934
ありがとうございます。一つ解決しました。
しかし、続いて教わった方法で、平均の最小2乗法による最小値を図示しようと思ったのですが
seq(0, 10, .01)を入れると、x軸がなぜか100倍されてしまします。
なぜなのか分かりませんか?おそらく、このforを使った解決策が
その後の応用(最小値を図示する)に適切でないのでしょうが
それがなんでなのか・・・(私はforについて、勉強し直します)
x <- c(3,5,6,8,2,9)
mean(x)
z<-c()
for(i in seq(from=0, to=10, by=.01)){
z<-c(z,sum(x-i)^2)
}
plot(z, type ="l") # x=5.5が最小のはずなのに、550が最小になっている 〒〒〒馬鹿板は悪い習慣であり、この行為は脳を悪くする。そやし足を洗いなさい。〒〒〒
¥ 横軸の数値用ベクトルwにサンプリング数値を保存しておいて、
グラフ化時のx軸の値として指定してみてはどうか?
x <- c(3,5,6,8,2,9)
mean(x)
z<-c()
w<-c()
for(i in seq(from=0, to=10, by=.01)){
z<-c(z,sum(x-i)^2)
w<-append(w, i)
}
plot(w, z, type ="l") w<-append(w, i)
は
w<-c(w, i)
の方が簡潔で上との整合性も保てるか。 >>933
z <- outer(x, 1:100, function(x, y) (x + y)^2)
apply(z, 2, sum) >>936
y軸の値しか指定しないから、x軸の値は1から始まる整数になる。
xv <- seq(0, 10, by=0.01)
z <- outer(x, xv, function(x, y) (x - y)^2)
yv <- apply(z, 2, sum)
plot(xv, yv, type="l") >>938-941
たくさんの返信ありがとうございます。
仕事から帰ったら、試してみます。 〒〒〒馬鹿板は悪い習慣であり、この行為は脳を悪くする。そやし足を洗いなさい。〒〒〒
¥ >>941
添削。
> system.time(for(i in 1:10){yv <- apply(z, 2, sum)})
ユーザ システム 経過
0.032 0.005 0.037
> system.time(for(i in 1:10){yv <- colSums(z)})
ユーザ システム 経過
0.002 0.000 0.001
ということで、apply()ではなくcolSums()を使うべき >>957
初心者には、速度を追及するよりは、応用の効くやりかたを学んでもらったほうが良いのでは? 数学板はなんで荒らし投稿ばかりなの?
ロボットのしわざかな?
常連さんのPCが乗っ取られているの? >>938, 939
ありがとうございます。x軸の値の指定が間違っていたのですね。
y軸の値をx軸に指定していても図の形が同じなため気がつきませんでした。
しかし、y軸の値をx軸にあてはめても図の形が同じなのはなぜだろうか?
というか、y軸を指定しないでx軸だけ指定したのに、エラーが出ず
それなりの図(plot)が書けているのはなぜだ?
世の中分からんことばかりです。
>>940, 941, 957
outer()とapply()も実は使ったことなくて、いろいろいじってみて勉強します。
この分野は計算速度とか測って極めていくのか。
colSums()とか初めて見ました。
>>958
働き出してから、統計を勉強し直している初心者です。
ご迷惑おかけします。
基本的には論文(心理学・医療系)を理解するための勉強です。
ふと、このスレで、とんちんかんな質問をしていたら私かもしれません。 >>960
x軸の値を指定せずにplotすると、横軸はデータのインデックス(順番)が表示される。
インデックスに対応する、本当の値をx軸の値としてplotしても、当然同じ図形になる。 〒〒〒馬鹿板は悪い習慣であり、この行為は脳を悪くする。そやし足を洗いなさい。〒〒〒
¥ 〒〒〒馬鹿板は悪い習慣であり、この行為は脳を悪くする。そやし足を洗いなさい。〒〒〒
¥ 自由度10のt分布に従う乱数を50個作りたい時は
rt(50,10)
でokでしょうか このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。
life time: 1406日 9時間 18分 13秒 2ちゃんねるの運営はプレミアム会員の皆さまに支えられています。
運営にご協力お願いいたします。
───────────────────
《プレミアム会員の主な特典》
★ 2ちゃんねる専用ブラウザからの広告除去
★ 2ちゃんねるの過去ログを取得
★ 書き込み規制の緩和
───────────────────
会員登録には個人情報は一切必要ありません。
月300円から匿名でご購入いただけます。
▼ プレミアム会員登録はこちら ▼
https://premium.2ch.net/
▼ 浪人ログインはこちら ▼
https://login.2ch.net/login.php レス数が1000を超えています。これ以上書き込みはできません。