08/02/18 01:47:34
下記で示される確立モデルの混合分布
f1(x)=Af2(x)+Bf3(X)
のうちf1(x)、f2(x)、f3(x)は既知とする。
このとき、AとBを計算したいのですが、
良いパッケージを教えてください。f2(x)とf3(x)は正規分布ではなく
任意な確立モデルの関数という条件でお願いします。
740:132人目の素数さん
08/02/18 05:58:55
確立モデル… orz
741:739
08/02/18 06:48:26
>>740
失礼。確率ね。
742:132人目の素数さん
08/02/19 00:15:39
>>739
意味がいまいちわかんないけど、数学知識ゼロの俺が答えてみる。
f1(x), f2(x),f3(x)が既知なら、x=x1, x=x2を代入して、
f1(x1)=Af2(x1)+Bf3(x1)
f1(x2)=Af2(x2)+Bf3(x2)
この2連立方程式を解けばAとBが求まると思うんだけど。
743:739
08/02/19 04:32:28
>>742
実は、f1~3(x)は元データを参考に最尤法で出した関数で、
・点でやった場合に元データに対して最大の精度がでるのかどうか
が個人的に分からない。
勝手に最適化してくれるならその方が良いかなと思ってた。
元関数の検定をしろと言われそうな話だが……。
あと確率モデル関数を重ねた場合の挙動が分からない。
積分で考えて多分A+B=1になりそうだ、とは思うけど。
情報後出しの上に明らかに色々勉強不足だね。吊ってくる。
744:132人目の素数さん
08/02/19 22:44:16
Rで繰り返しのない二元配置の多重比較をpairwise.t.test(ボンフェローニ)で行いました。
ついでに4STEPエクセル統計という本のアドインソフトで、同様にボンフェローニで
行いました。
すると、結果が微妙にちがいます。優位さがある組み合わせは同じですが
Rで<0.01なのにエクセルでは<0.05と出たりするものがあります。
そもそもpairwise.t.testは一元配置につかうもので、2元配置に使ったこと自体
があやまってるのでしょうか。
745:132人目の素数さん
08/02/19 23:18:22
>>744
pairwise.t.testのソース見たら単に一元配置の処理しかしてないことは分かるだろ。
エクセルのソフトは持ってないから知らないけど二元配置でちゃんと解析してるなら
結果が違って当たり前だな。
746:132人目の素数さん
08/02/20 00:02:36
>>745
ありがとうございます!
…ということはこれは間違ってるんですね
URLリンク(cse.niaes.affrc.go.jp)
Rで繰り返しのない二元配置の多重比較をする関数はないんでしょうか。
文献あさっても繰り返しなしの二元配置の多重比較は載ってないし…
747:132人目の素数さん
08/02/20 01:14:01
>>746
間違ってますね。
多重比較の部分は各要因ごとにしか書いてないですからすべて一要因の多重比較ですね。
748:132人目の素数さん
08/02/20 20:59:15
>>747
ありがとうございます。
繰り返しのない2元配置をRでどう多重比較したらよいのでしょう…
統計、Rなど独学で来たんですが、資料もなく
私は家政系なので専門じゃないです
もうこれ以上勉強しても分かりません
749:132人目の素数さん
08/02/20 22:40:37
>>748
まず、RjpWikiで検索して
URLリンク(www.okada.jp.org)
既出でなければ質問すればいいとおもいます。
URLリンク(www.okada.jp.org)
ただしネチケットには気をつけましょう。
750:132人目の素数さん
08/02/20 22:53:22
>>749
ありがとうございます。
一度ここでも検索、質問させていただいたんですけど、分からなかったんです。
変身もいただけなかったので、ネチケットが悪かったのかもしれません(涙)
もう一度聞いてみます…
751:132人目の素数さん
08/02/20 23:12:06
一般のネチケットというより、専門の人が主なのでロジカルに
何を質問しているのか?
処理したいデータは具体的にどういうものか(抜粋で例示など)
どこは自分でわかっていて、どこはわからないか
を明確にして質問した方がイイかも
752:132人目の素数さん
08/02/21 22:30:50
1行行列(1,2,3,4)と1列行列(1,2,3,4)を
かけると30になるはずだが、エラーが出る。
x <- rep(1:4)
> x
[,1]
[1,] 1
[2,] 2
[3,] 3
[4,] 4
> x*t(x)
以下にエラー x * t(x) : 適切な配列ではありません
どうやったら正確な結果が出せるか教えてください。
753:752
08/02/21 22:32:23
式は
t(x)*x
の間違いです。どちらもエラーなので大勢に影響は無いけれど。
754:132人目の素数さん
08/02/22 00:18:41
>>752-753
できますよ?
> x<-rep(1:4)
> x
[1] 1 2 3 4
> x*t(x)
[,1] [,2] [,3] [,4]
[1,] 1 4 9 16
既に回転済みのxをまた回してませんか?
755:132人目の素数さん
08/02/22 02:59:41
>>752
やりたいのはこういうことじゃないかな。
> x <- t(1:4)
> x
[,1] [,2] [,3] [,4]
[1,] 1 2 3 4
> t(x)
[,1]
[1,] 1
[2,] 2
[3,] 3
[4,] 4
> x %*% t(x)
[,1]
[1,] 30
%*% で内積ね。
最初に t() してるのは単に x <- 1:4 だと行も列も設定されないからで、
特に深い意味は無い。
756:132人目の素数さん
08/02/23 14:57:54
Rにはローカル変数はありますか?
名前空間を汚染したくない場合、関数を作るのが普通なのでしょうか?
757:132人目の素数さん
08/02/23 15:11:01
以下にエラー `[<-.data.frame`(`*tmp*`, row, col + 1, value = 0.0288357995999999) :
新しい列は既存の列に穴を開けるかも知れません
というエラーが出るのですが、既存の行列の列を増やすためには
何か作法が必要なのでしょうか?
758:132人目の素数さん
08/02/23 15:28:09
データセット? cbindを使えばいい?
すみません天啓が降りてきたので質問を取り下げます。
759:132人目の素数さん
08/02/23 17:05:31
0,0
0,1
0,2
:
0,10
1,0
1,1
1,2
:
1,10
2,0
:
:
10,10
こういう総当たり用の行列を作れる関数を教えてください。
お願いします。
760:132人目の素数さん
08/02/23 17:31:55
>>759
URLリンク(www.okada.jp.org)
761:132人目の素数さん
08/02/23 17:41:13
>>760
ありがとうございます。読んでみます
762:132人目の素数さん
08/02/24 11:03:47
同じ行列Xを n 回かけた行列の積
X %*% X %*% X %*% X %*% ....
を簡単に求める事ができる関数ってありますか?
763:132人目の素数さん
08/02/24 13:55:35
>>762
ガンバレw
764:132人目の素数さん
08/02/24 18:19:02
自作自作
765:132人目の素数さん
08/02/25 17:05:59
>>762
eval(parse(text=...)))とpaste()のcollapseオプションを使うと、例えば
下記のようにできるよ。
> n <- 5
> X <- matrix(1:4,ncol=2)
> eval(parse(text=paste(paste(rep("X %*% ",n-1),collapse=''),"X")))
[,1] [,2]
[1,] 1069 2337
[2,] 1558 3406
766:132人目の素数さん
08/02/25 19:47:23
効率のよい求め方なら、対角化するか
(X%*%X)%*%(X%*%X)みたいな分業方式でやるか。
767:132人目の素数さん
08/02/25 23:52:04
Rマスターなんだけど
なにか質問ある?
768:132人目の素数さん
08/02/26 02:19:09
ありません
769:132人目の素数さん
08/02/26 20:23:12
>>754-755
レスサンクス。内積は*じゃだめなのね。
勉強してきます。
770:132人目の素数さん
08/02/27 06:36:51
%*%は内積ていうか行列積だね。*は要素毎の積。
sum(x*x)でも結果は内積とるのと同じだけど。
771:132人目の素数さん
08/02/28 01:54:55
>>750
2元配置の多重比較は分からんな。
繰り返しないならrep.aovでできるぞ。
ぐぐってみるべし。
772:132人目の素数さん
08/02/28 06:04:45
混合分布の元関数を推定するのに良い方法ある?
一般的にはこうやってやるみたい。
URLリンク(omt.med.gunma-u.ac.jp)
mclustってパッケージでできるみたいだけど、
式が行列を沢山含んでcurveで表示できないし、実際に代入してみても
元のデータと全然数値が合わない。
773:132人目の素数さん
08/03/17 16:18:58
カイ二乗の%点を求めたいのですが(n=∞)
Rで、2.5及び97.5%点を求める場合、どのようにすればよいでしょうか。
(関数や無限大の表示入力方法等)
774:132人目の素数さん
08/03/17 20:24:59
>>773
そのnって自由度か?そうなら笑い話ということか。
775:132人目の素数さん
08/03/21 15:20:10
maxima使ってる人っていますか?
776:132人目の素数さん
08/03/26 11:35:41
統計には使っていないな。
777:132人目の素数さん
08/03/29 19:47:36
微分関数Dの威力に驚いています。
微分できない関数などもあるのでしょうか?
全面的に結果を信頼して大丈夫ですか?
778:132人目の素数さん
08/03/30 02:04:23
>>777
初等関数に対する微分の公式を与えておけばどんな関数も分解して微分するだけなので
問題ないのでは?積分はそんなに簡単にはいかないけど。
779:132人目の素数さん
08/03/31 17:31:28
>>501
qchisqでいいんじゃね?
780:132人目の素数さん
08/03/31 18:10:46
以前にRからmaximaを呼ぶ方法がRのMLで話題になっていたそうですが
結局実現できたのでしょうか?
781:132人目の素数さん
08/04/07 02:38:12
CからRの関数を呼んだりできないんですか?
VCでGUI作ってそこで色々処理させてる途中でRの関数を呼びたいんですけど。
782:132人目の素数さん
08/04/07 07:06:19
>>781
あのね、上のテンプレとか確認しましょうよ。
URLリンク(www.okada.jp.org)
783:132人目の素数さん
08/04/07 12:18:22
>>782
おお、できるんですか。
ちょっと使ってみます。
とりあえずできる、できないって一言レスを期待してテンプレも見ずに書き込んじゃいました。。。
丁寧にどうも。
784:132人目の素数さん
08/04/07 13:54:57
>>782
そのページはRからの他言語利用で>>781がほしいのはその逆のようですが…。
Rをコマンドとして呼び出すことはできるのでそうするんでしょうな。
785:132人目の素数さん
08/04/09 13:29:58
すみませんが、質問です。
R の遅延評価は、どのように活用すれば良いのでしょうか?
Haskellをちょっとだけかじったので、ああいう感じに使ってみようとしたので
すが、組み込みの遅延リストなどは無いようで(巨大なベクターを作成すると、
メモリ上に全部領域確保され、初期化されてしまう)、どうも勝手がわかりま
せん。
x = 0
for (i in 1:1000000) x <- x + i
print(x)
こういう計算でも、必要になった時点でデータが作られるわけではないようで、
1:1000000 が全部領域確保されてしまいます。
どういう使い方が想定されているのか、お教えいただけないでしょうか?
786:785
08/04/09 16:44:28
なんか要領を得ない質問ですね。すみません。まとめます。
「R が遅延評価であることの、うまい使い方を教えていただけませんか?」
よろしくお願いいたします。
787:132人目の素数さん
08/04/10 03:21:46
最近のRはパッケージの一括インストールがしにくくなってるな
なんでだろ
788:132人目の素数さん
08/04/10 11:15:18
前から順番はあったけどね
依存コードが多くなってきてるいい兆候じゃないかな
789:132人目の素数さん
08/04/12 20:12:56
依存もあって面倒だね
guiから一括ではダウンロードまでしかしてくれないし
790:132人目の素数さん
08/04/13 18:59:07
R/bin内のR.dll を使って、
VC++上からRの関数って実行できますか?
色々と試してみたのですが、コンパイルは通るものの、
肝心のRの関数のコール時にアプリがダウンしてしまいます。
アドバイスをお願い致します
791:132人目の素数さん
08/04/14 16:25:27
C用のインターフェース有ったような気がするが
792:781
08/04/14 16:51:15
>>784,790
RcppTemplateでググった?
まだ試してないんでできるかは分かりませんが・・・
793:132人目の素数さん
08/04/14 19:15:17
多言語からのライブラリのみの利用はできないんじゃない。
頭から呼び出す必要あると思う。
794:132人目の素数さん
08/04/14 19:38:12
あちゃ
多言語=>他言語
795:790
08/04/14 22:33:24
>781,793
レスありがとう
RcppTemplate は試しました。
pexport,libコマンド使用して Rdllからlibファイル作ったりもした。
一応コンパイルは通るんですけどね、
VC++上でデバッグかけると「AccessViolation」発生しちゃうんですよ。
恐らく、793さんの言うとおり、ライブラリだけの利用はできないような機がします。
RcppTemplateは 「R上で、C++を含んだR関数を作成するためのモノ」だと思いました(多分)
う~ん、残念。
796:790
08/04/14 22:44:48
>791
本当ですか?
RjpWikiの他言語インターフェース一覧は一応確認してますが、
Cから呼び出せるインターフェースは無かったです。
Rの中にある、 Call_R っていうやつですかね。
あれも「R上でCを含んだR関数を作成するもの」のような機が。
...詳細教えてください m(__)m
797:132人目の素数さん
08/04/14 22:46:02
MacのR 2.6.2なんですが、
cat("abc¥ndef")
とやってもコマンド版なら改行されるけどGUI版だと改行されずそのまま¥nが表示されてしまいます。どうしてかわかりませんか?
798:132人目の素数さん
08/04/14 23:32:46
最尤推定量を求めるには、R と Mathematica どっちが向いていますか。
Mathematicaで多変量とか扱うと、とんでもない値を返してくるか、止まるので。
それでも R よりましなら、式をテイラー展開の繰り返しで本当に適当な近似値出すんですが。
799:132人目の素数さん
08/04/15 09:21:55
>>797
\とoption+\の違いは分かる?Macユーザなら誰でも一度ははまる。
800:132人目の素数さん
08/04/15 12:00:47
Java用のライブラリ呼び出しのインターフェースがあるからそれより先にできてるんじゃないかな
CやC++用のが
801:132人目の素数さん
08/04/15 14:46:59
>>800
正直Cのインターフェースが用意されてない理由が分からない
>>796
URLリンク(www.okada.jp.org)
A1%BC%A5%D5%A5%A7%A1%BC%A5%B9%A4%CE%A4%A2%A4%EB%A5%A2%A5%D7%A5%EA
ここ見た?
CからJAVAを呼び出すのはJNIでいけるし間接的にCからRを呼び出せるんじゃないか?
実行速度は期待できないけど
802:132人目の素数さん
08/04/15 14:51:45
JNIはJavaからCはできるが逆は無理だろ
803:132人目の素数さん
08/04/17 22:35:32
>>799
ありがとう!Mac初心者だから知らなかった。
バックスラッシュと円記号は別なんですね。
804:132人目の素数さん
08/04/18 09:28:54
>>803
そう。MacでRjpwikiに書き込むときに、バックスラッシュと円記号
の違いで文字化けが発生してページを壊してしまうときがある。
805:132人目の素数さん
08/04/18 10:42:01
それMacrashっいうんだよ
・・・・いわねーな
806:132人目の素数さん
08/04/18 11:10:02
Macは昔からそういう雑なとこあるからなあ
807:132人目の素数さん
08/04/18 13:02:43
MacでもUSキーボードを使えば無問題。
808:132人目の素数さん
08/04/18 14:56:09
どんどんRから話がそれているが、
>>806
雑なのではなく、むしろ余計なお世話。「円記号とバックスラッシュが同じ」と
いうバットノウハウをもつ人間からは、そこまで細かい配慮はいらんとなるが、
そうではない人向けに両方を出力できるようにしている。そもそもUTF-8では
円記号とバックスラッシュに違うコードが割り当てられているので、UTF-8を
導入した以上は、明瞭に区別するのが正当とおもう。euc-jpなLinuxユーザなの
で、他のutf-8なOSがどうなのか知らないけど。
809:132人目の素数さん
08/04/18 15:37:25
そういうのを雑というんだよ
810:132人目の素数さん
08/05/01 19:24:36
2.7に変わってどうよ
811:132人目の素数さん
08/05/13 23:56:21
2.7.0 windows版で、以下のようになってしまうのですが・・
何がいけないんでしょうか??
> require(datasets)
> data(iris)
以下にエラー file.info(x) : ファイル名変換に問題があります
> data()
以下にエラー file.info(x) : ファイル名変換に問題があります
> data(iris, package="datasets")
> head(iris)
Sepal.Length Sepal.Width Petal.Length Petal.Width Species
1 5.1 3.5 1.4 0.2 setosa
2 4.9 3.0 1.4 0.2 setosa
3 4.7 3.2 1.3 0.2 setosa
4 4.6 3.1 1.5 0.2 setosa
5 5.0 3.6 1.4 0.2 setosa
6 5.4 3.9 1.7 0.4 setosa
812:132人目の素数さん
08/05/14 01:19:34
>>811
ひょっとしてファイル名に問題があったりする?
知らんけど。
813:132人目の素数さん
08/05/14 02:23:44
(゚Д゚)≡゚д゚)、カァー ペッ!!
814:132人目の素数さん
08/05/14 02:48:49
(゚Д゚)≡゚д゚)、カァー ペッ!!
815:132人目の素数さん
08/05/14 16:46:29
>>811
Linux版だとそのエラーはでないね。Rを想定外の場所にインストールしているとか
816:132人目の素数さん
08/05/14 20:51:12
811です。
2.7.0を再インストールした段階では問題ありませんでした。
そのあと、Rcmdrを追加したあとで、おかしくなりました。
それから、どうにもなりません。
どなたかご解決をお願いします。
817:132人目の素数さん
08/05/15 12:39:21
パッケージがちゃんと読み込めてないんじゃ
818:132人目の素数さん
08/05/15 22:59:11
811です。
以下のもエラーがでるようになっていました・・・何か参考になれば・・
> demo()
Warning message:
In file.show(outFile, delete.file = TRUE, title = paste("R", tolower(x$title))) :
819:132人目の素数さん
08/05/24 09:41:34
tseriesのプロットで、複数のデータ系列を1枚の図に盛り込むために
plot(hoge.ts, plot.type = "single")
をしているのですが、更に棒グラフ+ラインプロットのように系列によって
プロット方法や色などを変えたいと考えています。
で、?plot,?plot.ts,?plot.default,?parなどを読んだのですが、
系列ごとに変えることがさっぱりできません。これはもしかして
plot一発ではできなくて、低レベル描画関数を組んで自分でデータ系列ごとに
1つづつプロットしないと駄目なんでしょうか?
単に無知・調査不足でできないのか、それとも本当に↑の通りなのか
見極めが付かないままなので、先達の方に道程を指し示していただければと。
820:132人目の素数さん
08/05/25 02:17:18
Rのプロンプトからから直接bash使えねえかなあ?
なんかイラっとくる
821:132人目の素数さん
08/05/26 01:17:34
>>820
system()じゃ足りないの?
822:132人目の素数さん
08/05/26 13:55:59
C#からRを使うことはできないのかな。
C#自体がどうのこうのという意見は置いといてな。
823:132人目の素数さん
08/05/26 16:30:55
統計学なんでもスレッド8
スレリンク(math板)
824:132人目の素数さん
08/06/01 16:36:34
皆さんRコマンドを実行するときはどのようにしていますか?
エディタで書いてRConsoleにコピペしているのですが
もっと簡単な方法はないですかね?
825:132人目の素数さん
08/06/01 17:14:08
>>824
むしろ、そんな面倒なことをしている人の方が少なそう。emacs+essとかTinn-Rとか
Rjpwikiには書いていなかったっけ?
826:132人目の素数さん
08/06/05 07:52:57
>>824 同じくR付属エディタで書いてコピペしてます。
個人的には割と満足。
ただエディタがカッコとかクウォートを補完するのを止めたいのだが…
まあもう少し調べるか。
827:132人目の素数さん
08/06/07 19:07:56
Rで出力するグラフにHelveticaファミリーのフォントを直接使いたいんですが,どなたか方法をご存じないですか?
epsファイルに出力すれば使えるのはわかりますが,WindowsメタファイルやPDFに直接出力したときに反映されるようにしたいんですが……。
828:132人目の素数さん
08/06/08 00:17:32
>>827
Windowsメタファイルは知らんが、pdfはHelveticaになっていないの?
> pdf("tmp.pdf")
> plot(runif(10),runif(10))
> dev.off()
null device
1
> system("/opt/local/bin/pdffonts tmp.pdf")
Error: No paper information available - using defaults
name type emb sub uni object ID
------------------------------------ ----------------- --- --- --- ---------
ZapfDingbats Type 1 no no no 5 0
Helvetica Type 1 no no no 10 0
Helveticaになっているよ。
829:132人目の素数さん
08/06/08 02:11:47
>>828
小塚明朝になってます…
epsをつくるときにフォントファミリーを指定する方法以外調べてもわからなかったんですが,どう設定すればいいのでしょうか?
830:132人目の素数さん
08/06/09 00:19:32
>>829
初期設定のどこかで小塚明朝にしているでしょ。
>>828はデフォルトの状態で何にも触っておらんよ。
> pdf.options()$family
[1] "Helvetica"
上記のようになっていなかったら、
pdf.options()$family <- "Helvetica"
でいいじゃね。
831:132人目の素数さん
08/06/09 01:45:26
F検定に関する質問です。
自由度19,19のデータ列a,bに対してF検定を行なったところ、
以下の結果を得ました。
var.test(c,b,conf.level=0.95)
data: c and b
F = 1.3572, num df = 19, denom df = 19, p-value = 0.512
alternative hypothesis: true ratio of variances is not equal to 1
95 percent confidence interval:
0.5371931 3.4288788
sample estimates:
ratio of variances
1.357192
95%信頼区間は(0.5371931, 3.4288788)とのことです。
しかし実際にF分布から信頼区間を求めると
> qf(0.025,19,19)
[1] 0.3958122
> qf(0.975,19,19)
[1] 2.526451
と、上のF検定結果とは異なる結果になります。
(それ以前に、上の検定結果は(下限)=1/(上限)の関係すら満たしていません)
var.test()の信頼区間とは何を現しているのでしょうか?
832:831
08/06/09 01:49:47
いちおう上げときます
833:829
08/06/09 03:45:43
>>830
ありがとうございました。
834:132人目の素数さん
08/06/09 06:00:35
>>831
1/qf(0.025,19,19)=2.526451
=qf(0.975,19,19)
835:132人目の素数さん
08/06/09 08:25:28
>>831
信頼区間なんだから非心F分布から求めてるんだろ。
836:132人目の素数さん
08/06/09 22:15:28
>>834
そちらは当然逆数の関係にあります。
「上の検定結果が逆数関係を満たしていない」とは、F検定結果の信頼区間のほうをさしています。
>>835
非心F分布ですか…。
勉強不足でしりませんでした…。
837:836
08/06/09 22:17:02
名前入れ忘れました。>>831で質問した者です
838:132人目の素数さん
08/06/10 02:04:25
行列の部分行列や、ベクトルの特定の要素範囲を取り出すにはどうすればいいですか?
個別要素ではなくて一括して取り出したいです。
(1,2,3,4,5,6,7)
↓
(3,4,5,6)
1 2 3 4
5 6 7 8
9 10 11 12
↓
6 7
10 11
みたいなかんじです。
839:132人目の素数さん
08/06/10 09:54:17
> (a <- 1:7)
[1] 1 2 3 4 5 6 7
> a[3:6]
[1] 3 4 5 6
> (b <- matrix(1:12,ncol=4,byrow=TRUE))
[,1] [,2] [,3] [,4]
[1,] 1 2 3 4
[2,] 5 6 7 8
[3,] 9 10 11 12
> b[2:3,2:3]
[,1] [,2]
[1,] 6 7
[2,] 10 11
やりたいことがいまいち分からないが、こういうこと?
840:132人目の素数さん
08/06/10 19:43:55
>>831
qf(c(0.025, 0.975), 19, 19) * 1.357192
[1] 0.5371931 3.4288790
841:132人目の素数さん
08/06/11 23:06:05
>>831
qf(0.025,19,19) の 0.3958122 と
qf(0.975,19,19) の 2.526451 は
2群の標本分散の比(つまりF値)の棄却域。
95 percent confidence interval:
0.5371931 3.4288788
ってのは、2群の標本分散の比であるところの1.3572(F値そのもの)
から推定すると、2群の母集団の分散の比はこの辺にあるだろうなー、
という幅。つまりは信頼区間。
母分散の比の推定を幅ではなくて一点でしぼるのなら、最も合理的な値は
F値であるところの1.3572。
842:831
08/06/11 23:33:17
>>840-841
なるほど、分かってきた気がします!
母集団のF値が1で仮定したときの帰無仮説における95%信頼区間が0.3958122~2.526451であり、
これから標本値のF値が外れていると棄却する。
一方、「95 percent confidence interval」は、逆に標本値がF=1.3572であったときの母集団の推測値の95 percent confidence intervalということですか。
これから帰無仮説における母集団のF値=1が外れていると棄却する。
納得いきました。結局は同じことだったんですね。
ありがとうございました。
843:132人目の素数さん
08/06/12 00:43:15
************
九天社は2008年06月10日に営業を停止しました。
************
このページは、元サイト管理者の判断により一時的にサーバーを移転して公開しています。書籍のデータのダウンロード等、必要な方はなるべくお早めにダウンロードしてください。
--------------------------------------------------------------------------------
Rプログラミング&グラフィックス
[著]高階知巳 [価格]3,990 円(税込)
--------------------------------------------------------------------------------
Rで学ぶデータマイニングII シミュレーションの視点から
[著]熊谷悦生、舟尾暢男 [価格]3,990 円(税込)
--------------------------------------------------------------------------------
R Commander ハンドブック
[著]舟尾暢男 [価格]3,360 円(税込)
--------------------------------------------------------------------------------
Rで学ぶデータマイニング I データ解析の視点から
[著]熊谷悦生、舟尾暢男 [価格]3,780 円(税込)
--------------------------------------------------------------------------------
The R Tips データ解析環境 R の基本技・グラフィックス活用集
[著]舟尾 暢男 [価格]3,675 円(税込)
--------------------------------------------------------------------------------
The R Book データ解析環境「R」の活用事例集
[著]岡田 昌史 [価格]3,990 円(税込)
--------------------------------------------------------------------------------
844:838
08/06/12 01:03:42
>>839
できました!ありがとうございました!
845:132人目の素数さん
08/06/12 12:52:50
>>843
ぬわっんと、倒産ですか。
すみませんが、その移転先を教えて頂けませんか、お願いします。
846:132人目の素数さん
08/06/12 17:33:11
そもそも移転すんのか?
倒産だし
847:132人目の素数さん
08/06/12 17:41:13
>>845
これかな
URLリンク(www.9-ten.com)
848:132人目の素数さん
08/06/12 21:49:10
>846
いや、サイトの移転先の話ですw ページトップからは入れなくなっているんで。
>847
ありがとうございます。
849:132人目の素数さん
08/06/13 11:49:50
waveletの使い方分かるかた
分解したwaveletを再構成するにはどうしたらいいか教えてください
関数が今一分からないです
850:132人目の素数さん
08/06/15 22:25:02
九天社倒産を知って、買うのを迷っていたThe R Bookの購入を決断。
ところが、Amazonはじめいつも使っているネット書店では在庫なし!
しばらく探し歩いて、今日、無事に届いた。急な出費は痛いけど、
悔やむより良いかなと。
851:hoge
08/06/15 22:54:04
CRANってなんて読むの?
ググったけど分からん!
教えてください。
852:132人目の素数さん
08/06/15 23:07:43
>>851
しらん(´・ω・`)
853:132人目の素数さん
08/06/15 23:31:00
>>852
クスっときた
854:132人目の素数さん
08/06/15 23:32:26
>>851
くらんって言う人が多い気がする
855:132人目の素数さん
08/06/19 15:07:58
行列データで身長160から170は何人いるかという条件付きの集計をしたいのですが、どのようにすればよいのでしょうか
856:132人目の素数さん
08/06/19 17:32:09
> height <- 150:180 #height をデータの行列とした。
> compare <- height >= 160 & height < 170
> table(compare) #これとか
compare
FALSE TRUE
21 10
> length(which(compare)) #これとか
[1] 10
857:132人目の素数さん
08/06/20 15:31:21
ありがとうございます
行列データなのですがまずデータフレームにするべきなんですね。
858:132人目の素数さん
08/06/20 19:07:32
全然関係ない話なんだけどさあ、検索するじゃん。検索。googleとかで。
それでさあ、くだらないブログが腐るほど引っ掛かるんだよね。
知ったかとか、出鱈目とか鵜呑みにしたような内容の馬鹿ブログ。
いや、早い話がお前らブログ辞めろって。
いや、それだけなのよ。まじで。お願いだから辞めて下さい。
資源の無駄、そして多くの人、社会の利便性と生産性を根こそぎかっさらってますよ。お前達
859:132人目の素数さん
08/06/20 20:29:23
>>858
お前のようなタイプが一番生産性低いんだが。
860:132人目の素数さん
08/06/20 23:12:59
>>857
データフレームの方が扱いやすいが
それくらいの集計なら行列でもたやすいぞ。
861:132人目の素数さん
08/06/21 00:21:34
>>856のやり方は正統派なんだけど、めんどうなので、
> height <- 150:180
> sum(height >= 160 & height < 170 )
[1] 10
これでいいんじゃね。
862:132人目の素数さん
08/06/21 07:01:21
>>855
ちゃんと分析するならこんな感じ。
# 分析対象データを乱数で発生させる。
height<-runif(100,min=150,max=180)
# 集計する区切り位置を決める。
breaks<-c(150,160,170,180)
# 区切り位置で区切った結果が因子になって出てくる。
fac<-cut(height,breaks=breaks,right=F)
# 因子の数を集計すると度数分布が出てくる。
table(fac)
# ついでにヒストグラムも描いてみる。
hist(height,breaks=breaks,right=T)
863:132人目の素数さん
08/06/21 18:13:48
S-PLUSとRの互換性のある部分とない部分をまとめた資料ってない?
864:132人目の素数さん
08/06/27 16:54:25
ありがとうございます。
1列に限定した度数分布を求めることはできたのですが
heightが160以上170でweightが50から60は何人いるか、という2つ以上の条件を含めた度数分布をもとめるにはどうすればよいでしょうか
865:132人目の素数さん
08/06/27 18:50:39
>>864
うーむ……クレクレくんかよ。ちょっとは考えようや。
compareH <- height >= 160 & height < 170
これで、160~170が TRUE/FALSE で取れてくるんでしょ。なら、
compareW <- weight >= 50 & weight < 60
で 50~60が TRUE/FALSE で取れるじゃん。
両方が TRUE の場合のみカウントすれば良いんだから、
length( which(compareH & compareW) )
866:132人目の素数さん
08/06/27 19:21:22
なんかめんどくさいな
160<=height<170 and 50<=weight<60
とか書けないのかな・・・・
まあいいけど
867:132人目の素数さん
08/06/27 20:20:13
人が初心者向けに書いてやったのに、ゆとりなのでしょうか、呆れますなぁ。
sum(height - 160)%%10 < 10 & (weight - 50)%%10 < 10)
礼ぐらいまともに出来るようになれよ。
868:132人目の素数さん
08/06/27 22:31:38
# 分析対象データを乱数で準備。
dataset<-data.frame(height=runif(100,min=150,max=180),weight=runif(100,min=30,max=100))
# 集計する区切り位置を決める。
breaks.height<-c(150,160,170,180)
breaks.weight<-c(30,40,50,60,70,80,90,100)
# 区切り位置で区切った結果が因子になって出てくる。
fac.height<-cut(dataset$height,breaks=breaks.height,right=F)
fac.weight<-cut(dataset$weight,breaks=breaks.weight,right=F)
# クロス表を出す。
table(fac.height,fac.weight)
少し汎用性を持たせるとこんな感じだろうか。僕も勉強し始めだから。
なんでこれをRで集計する必要があるのか、興味あるところ。
869:132人目の素数さん
08/06/27 22:35:32
ついでに別の話題をカキコしたり。
rcompgenちうものを最近知ったわけで。コマンド補完は
ESSでしか無理だと思っていて、emacs挫折者の僕としては
rcompgenの補完機能だけで泣けた。あまり紹介されていない
機能の様だけれど、R使いの人達には言うまでも
ないことなのだろうか、それとも大穴なのだろうか。
870:132人目の素数さん
08/06/27 23:26:38
皆さんありがとうございます。
少しは自分できちんと調べられるようになります。
871:132人目の素数さん
08/06/27 23:37:01
>>867
あ~勘違いですよ
質問者ではないので、質問者を責めないであげて。
単に冗長だなと思っただけ。
872:132人目の素数さん
08/06/28 01:02:05
867はネット初心者だから
沢山の人間が書き込んでいるとは
想像できていなかったんだ、
許してやってくれ。
873:132人目の素数さん
08/06/28 10:18:19
ここ数レスでsageてないのが質問者だけだったから>>867が勘違いしたんだろ
874:132人目の素数さん
08/06/28 17:26:47
常識ねーなあ>>867
875:132人目の素数さん
08/06/28 17:38:54
反省しろよ?>>867
876:849
08/06/28 18:22:41
教えて
877:132人目の素数さん
08/06/28 19:29:22
逆変換すれば?
878:849
08/06/28 20:08:47
そもそも変換後の値を取り出す方法が分からない
それが分かれば再変換可能
879:849
08/06/28 20:09:12
ごめん逆変換
880:132人目の素数さん
08/06/30 11:03:23
867だが、勘違いだったようだ、スマンカッタ。
罪滅ぼしに、160 <= hoge < 170が出来ない理由を書いておく。
算術演算子なら、演算子の優先度に基づいて左から解釈されていく。
このとき一つ一つの演算結果は数値だ。一方比較演算子はbooleanが結果になる。
例で言うと (160 <= hoge) < 170 で括弧の中身を比較したあとに < 170 の演算を
やるわけだが、括弧内の結果(T/F) と数値の比較はできない。T を1と強制変換
したとしても、それは hoge < 170 の比較ではなくなるので意味が無い。
このため、コードが人間からすると冗長になるのは仕方が無い。
881:132人目の素数さん
08/06/30 19:10:31
>>880
> 160 <= hoge < 170が出来ない理由
> hoge <- function(x){
+ a <- unlist(strsplit(x,' '))
+ res <- eval(parse(text=paste(a[1],a[2],a[3]))) &
+ eval(parse(text=paste(a[3],a[4],a[5])))
+ return(sum(res))
+ }
> height <- 150:180
> hoge('160 <= height < 170')
[1] 10
882:132人目の素数さん
08/06/30 19:24:55
また開発会社が身売りされた
883:132人目の素数さん
08/06/30 20:16:16
>>881
それを>866はコードが冗長だといっているのでは?と思ったのだが。
出来ない訳ではないのは分かっているし、もっと単純にやる事も出来るでしょ。
sum(hoge * (hoge >= 160) < 170)
で出来る。これにしても、人間にとっては冗長だと思うけど。
884:132人目の素数さん
08/06/30 21:11:30
>>883
欠かれたコードが冗長と言っているのでなく、
そもそも冗長になってしまう言語面の問題を
言いました。
用意すれば良いのは分かっているのですが。
かといって、テクニックで短くなるの自分だけが
見る時以外は良くないし。
少々冗長でも分り易ければいいんですが。
基本的には、言語として人に優しくないなと思ったまでです。
885:132人目の素数さん
08/06/30 21:14:20
>>882
お!主語が抜けてた。再度
またS-PLUSの開発会社が身売りされた
886:132人目の素数さん
08/06/30 21:59:37
プログラミング言語は自然語にはどうやっても成れないだろうな、と思う。
887:132人目の素数さん
08/06/30 22:40:11
ちょっと、そう思っただけで
あまり大げさに考えないでください。
逆いえば、まだまだ考えるべき世界が残っている
ということですし。
888:132人目の素数さん
08/07/01 03:58:52
関数定義はできないのか?
889:132人目の素数さん
08/07/01 10:53:45
>>888
>>3
890:132人目の素数さん
08/07/04 03:00:58
述語論理のライブラリあったと思うが
根気が要るだけで不可能と決まってはいないよね
確か研究者も居て今最中だと聞いたことがある
891:132人目の素数さん
08/07/04 06:21:56
>>888
>>881 でも関数定義してるよ
どちらかと言えば、関数定義しながら
作っていく言語
892:132人目の素数さん
08/07/04 18:47:40
たとえば
foo<-seq(from=100000,to=1000000,by=10000)
plot(foo,foo)
とすると、標準デバイスに散布図が描かれるけど、
x,y軸の数値表記が
2e+05 4e+05 ... 1e+06
と指数表記されてしまう。これを
200000 400000 ... 1000000
と表記させることはできないだろうか。
低水準作図関数で作るまでの必要はないし、
ものすごく簡単なことで実現できそうで、
wikiには恥ずかしくて書けないから、
こっちで誰か教えてくれまいか。
環境は Windows XP SP2 R 2.7.0 です。
893:132人目の素数さん
08/07/04 18:59:00
>>892
っていうかwikiのどこかにそれ書いてあると思うけど。
894:892
08/07/04 22:28:12
>>893
書いてあるのか!そうか、方法はあるんだな。良かった。
でもな、調べるにしても既に検索ワードのネタ切れでな....。
895:132人目の素数さん
08/07/04 23:40:59
>>892
options(scipen=2)
URLリンク(cse.naro.affrc.go.jp)
896:132人目の素数さん
08/07/05 17:41:11
すみません、標準偏差の求め方を教えて下さい。
897:132人目の素数さん
08/07/05 17:43:47
すみません間違えました。分散の方です。
898:892
08/07/05 22:01:32
>>895
できたよありがとうウァァァァァァン!!!!!
899:132人目の素数さん
08/07/07 16:04:57
教えてください。
R初心者なんですが、Rcmdr使ってるんですけど
このパッケージで探索的因子分析ってできますか?
因子数を最初に決めるのが困難なですが・・・。
900:132人目の素数さん
08/07/13 20:03:53
しばしば
Error: cannot allocate vector of size 342.5 Mb
R(2168,0xa01a6fa0) malloc: *** mmap(size=359137280) failed (error code=12)
*** error: can't allocate region
の様なエラーが出てしまうのですが、
これはメモリ割当が足りないという事でしょうか?
MacBookPro/MacOSX10.5.4/2G memory/R2.7.1/Rapp1.25
です。
どのようにしたら回避できるでしょうか?
901:132人目の素数さん
08/07/15 19:21:55
すみません
redhatにRをインスコして
「R --vanilla << EOF」
を用いてシェルスクリプト上からバッチ処理したいなと思ったんですが
「以下にエラー check.options(new, name.opt = ".X11.Options", envir = .X11env) :
c("invalid argument name 'restoreConsole' in 'png(str, width = 1920,
height = 980, pointsize = 12, bg = \"white\", '", "invalid argument
name 'restoreConsole' in ' res = NA, restoreConsole = TRUE)'")
Calls: png -> check.options
実行が停止されました」
と出てしまい実行できませんでした。
試しに
「 x <- 1:10
y <- 1:10
plot(x, y)
q() 」
をEOFで挟んで実行すると問題なく画像ファイルが出力されました(PDF形式でしたが。。)
エラー内容を読み解くことすらできません・・どなたかわかるかたいらっしゃいませんか?
902:132人目の素数さん
08/07/15 20:27:07
>>901
普通はグラフィックディバイスを開いてからplot()を使うので、グラフィックディバイス
を開かずにいきなりplot()すれば、エラーが出て当然だけど、それでもpdfを吐いてくれる
んだ。親切な仕様だな。
?png
?postscript
あたりを読む。
903:132人目の素数さん
08/07/16 01:21:04
R-tips高かったのにすごくわかりにくいorz
読み解く根性がないと言われたらそれまでだけど・・・
R-tipsの前におすすめの入門書とかないですかね。。。
904:132人目の素数さん
08/07/16 09:57:51
>>903
筆者がR-tipsがわかりにくいという評判なので、もっとわかりやすいのを書いたと
言っているデータ解析環境「R」―定番フリーソフトの基本操作からグラフィックス、統計解析まで-
URLリンク(www.amazon.co.jp)
を薦めている。「Rによるデータサイエンス」もお薦め。
905:132人目の素数さん
08/07/16 12:39:59
>>904
親切にどうもです
今日本屋で見てきます。
906:132人目の素数さん
08/07/17 15:43:46
主成分分析について質問です。
prcompで主成分分析したときに出てくる値というのは、
分散共分散行列による主成分分析の値ですよね?
この青木先生のページ(URLリンク(aoki2.si.gunma-u.ac.jp))
にあるpcaと言う関数の主成分負荷量とはいったい何の値なんでしょうか?
prcompで主成分分析したときの値とだいぶ異なりました。
相関行列による主成分分析の値かと考えたんですが計算したら違うようなので・・・
また、普通主成分分析をするとしたらどちらの値を指すのでしょうか?
907:132人目の素数さん
08/07/17 19:48:17
あげ
908:132人目の素数さん
08/07/18 00:16:09
>>906
固有ベクトルは長さが1で負荷量は長さが固有値という違いですね。
分散共分散行列に基づく主成分分析は変数の測定単位が同じである必要が
あるけど相関行列に基づく方はこだわらなくてよいので青木先生は初期設定を
そちらにしてるのかな。
909:906
08/07/18 22:40:26
>>908
なるほど。
prcompの方は分散分析行列によるもので長さが1の固有ベクトル、
青木先生のpcaは相関行列によるもので長さが固有値の負荷量ということですね。
でも今使ってるデータをprcompとpcaで解析すると、
第一主成分の係数の符号は同じなんですが、
第二主成分以降の係数の符号が違くなります。。。
(符号が反転してるわけではないので、たぶん主成分の順番が入れ替わってます。)
分散分析行列に基づいた解析と相関行列に基づいた解析では
主成分の順番が入れ替わることはありえるのでしょうか?
それともやり方が何か間違っているのでしょうか・・・?
説明が下手ですいません
910:132人目の素数さん
08/07/19 21:37:11
>>909
分散共分散行列に基づく主成分と相関行列に基づく主成分は
大きく異なることも多いです。特に分散共分散行列に基づく主成分で
第1主成分が総合効果の場合、相関行列ではそれが消えてしまいます。
つまり順番だけとは限りません。
911:132人目の素数さん
08/07/20 04:12:32
Rjp Wiki アーカイブスの2.2 箱型図に平均+標準偏差範囲を矢印で加える
に関して教えていただきたいのですが、サンプルプログラムを走らせても
> boxplot2()
windows
2
と表示されるだけで、図が作成されません
何か問題があるのでしょうか?
どなたか、どうぞよろしくお願いします
912:132人目の素数さん
08/07/20 12:39:57
>>910
なるほど、全然別のものになってしまうんですね。
疑問が解決しました、ほんと丁寧にありがとうございました。
913:132人目の素数さん
08/07/28 10:44:55
二年十八日十三時間。
914:132人目の素数さん
08/08/03 22:30:29
統計の本を読みながら、Ruby でシコシコ書いて実践していたんだけど、
Excel 用の統計本を買ったら、統計関連関数が山ほどあって、
Ruby から Excel 関数を利用することを試みつつ、
相関、推定、検定と書いてきて、重回帰分析で Excel 関数を使うか、
Ruby の Matrix を使うか、しばし熟考・・・・・
これはムダだと、ようやく気づいた。
「なんか、あるだろ、統計ソフトが」
んで、ググって、ここに来たよ。
マジですごいなコレ(R)。
文法が変だと思ったけど、慣れだな。
自力でやっていたことはムダではなかった。
R の変数名、関数名、引数を見るだけで、もうやりたいことがわかるし。
Web 上に情報がてんこ盛りだし。ありがてー ・゚・(ノД`)・゚・
915:132人目の素数さん
08/08/04 04:22:33
>>914
文法は、Cの皮をかぶったLISPだから。RUBY屋ならすぐになれると思うよ。
916:132人目の素数さん
08/08/05 16:41:38
Rによるやさしい統計学って本片手にいじってるけどおもろい
共分散構造分析がやりたいんだけど他の参考書と比べても充実してるし
豊田秀樹先生もRによるSEMマニュアル出してくんないかな
917:914
08/08/05 22:23:08
>>915
>文法は、Cの皮をかぶったLISPだから。RUBY屋ならすぐになれると思うよ。
ハハ。その通りみたいだ。
Rgui を起動してみて、Stk(Scheme) みたいだと思ったよ。「なつかしー」
What is STk?
URLリンク(kaolin.unice.fr)
STk is a free R4RS Scheme interpreter which can access the Tk graphical
package. Concretely, it can be seen as the standard Tk package where Tcl has
been replaced by a Scheme interpreter. STk embeds also an efficient CLOS
like object oriented system, called STklos, which provides:
The mandatory screenshots page
URLリンク(kaolin.unice.fr)
The STk Code Editor
This is a specialized editor for Scheme programming.
It do some font highlighting and parenthesis matching.
918:132人目の素数さん
08/08/06 21:39:49
>>916
いいですよね、その本。
私も買ってしまいました。
大学の教授の研究室にもありましたよ!
919:132人目の素数さん
08/08/10 17:23:21
そんな高くないんだからアマゾンででも買っとくといいぞ
920:教えてください
08/08/11 15:21:15
R初心者です。
例えば次のようなデータ(X,Y,Z)があります。
X Y Z
20 10 120
30 56 201
5 40 150
12 25 96
19 27 115
Zの値がが100未満ならA、Zの値が100以上150未満ならB、Zの値が150以上ならCと変換して、
下記のようにしたいのですが、どなたか教えていただけないでしょうか?
X Y Z
20 10 B
30 56 C
5 40 C
12 25 A
19 27 B
どうぞよろしくお願いいたします。
921:132人目の素数さん
08/08/11 22:42:20
> z <- c(120,201,150,96,115)
> zc <- ifelse(z<100,"A",ifelse(z>=100 & z<150,"B",ifelse(z>=150,"C",NA)))
> zc
[1] "B" "C" "C" "A" "B"
エクセルと同じかな?
922:132人目の素数さん
08/08/11 23:12:14
> z <- c(120,201,150,96,115)
> z[z>=150] <- "C"
> z[z>=100 & z<150] <- "B"
> z[z<100] <- "A"
> z
[1] "B" "C" "C" "96" "B"
?????どうしてうまくいかない???
逆では?? うまくいかない??
> z <- c(120,201,150,96,115)
> z[z<100] <- "A"
> z
[1] "120" "201" "150" "A" "115"
> z[z>=100 & z<150] <- "B"
> z
[1] "B" "201" "150" "A" "B"
> z[z>=150] <- "C"
> z
[1] "C" "C" "C" "C" "C"
なぜなのか教えて
923:132人目の素数さん
08/08/11 23:51:56
Rは知らないが
これみると
"A","B","C"という値は、"150"より
大きいということでしょう。
HEX出力してみるとそうなってんじゃないかな。
924:132人目の素数さん
08/08/12 02:40:11
>>922
> z <- c(120,201,150,96,115)
> z2<-z
> z2[z>=150]<-"C"
> z2[z>=100&z<150]<-"B"
> z2[z<100]<-"A"
> z2
[1] "B" "C" "C" "A" "B"
自分自身に入れると途中から数ではなく文字列になるので
>>923のいうように文字列比較になってしまいうまくいかない。
925:教えてください2
08/08/12 07:41:22
ありがとうござます。データが多いときは、例えばdata=(X,Y,Z)のときはどうすればよろしいでしょうか?
条件文を
> zc <- ifelse(data$Z<100,"A",ifelse(datat$Z>=100 & data$Z<150,"B",ifelse(datat$Z>=150,"C",NA)))
を使って、Zに記号をつけた新しいdataNEW=(X,Y,Z)ができますか?
すみませんまた教えていただけませんか?よろしくお願いします。
926:132人目の素数さん
08/08/12 11:51:07
>>925
recodeするときは、ifelseよりもcutを使った方が楽だと思うぞ。
> z <- c(120,201,150,96,115)
> z <- cut(z,c(-Inf,100,150,Inf),include.lowest=TRUE)
> levels(z) <- LETTERS[1:3]
> z
[1] B C B A B
Levels: A B C
927:132人目の素数さん
08/08/13 14:16:12
t検定表を見る代わりに、Rに出力させたいのですが、どうすればできますか?
928:132人目の素数さん
08/08/14 08:46:30
自己解決しました。
信頼係数95%のときに、自由度10の両側有意水準は、以下のようにして得られる。
> qt(0.975,10)
[1] 2.228139
> qt(0.025,10)
[1] -2.228139
929:132人目の素数さん
08/08/15 17:51:35
パッケージkernlabの二次計画ソルバーipop使ってる人いますか?
二つの変数があるときの二次計画をときたいのですが。。
ipopでは無理なのでしょうか?
930:教えてください2-1
08/08/15 22:32:45
>>926 ありがとうございます。
ifelseよりシンプルに書けそうですね。
申し訳ありませんが下の2行の翻訳をお願いいます。
> z <- cut(z,c(-Inf,100,150,Inf),include.lowest=TRUE)
> levels(z) <- LETTERS[1:3]
A、B、Cの指示はどの部分ですか?
よろしくお願いします。
931:132人目の素数さん
08/08/16 04:45:38
>>930
LETTERS[1:3]
932:926
08/08/16 21:33:49
>>931
代返ありがと
>>925
ベクトルではなくてデータフレームを扱いたいと言うこと?cbind()で足せばOK
> dat <- data.frame(x=month.name[1:5],y=runif(5),z=c(120,201,150,96,115))
> dat
x y z
1 January 0.63212456 120
2 February 0.19865357 201
3 March 0.31978766 150
4 April 0.88575752 96
5 May 0.01307491 115
> z.s <- cut(dat$z,c(-Inf,100,150,Inf),include.lowest=TRUE)
> levels(z.s) <- LETTERS[1:3]
> dat <- cbind(dat,z.s)
> dat
x y z z.s
1 January 0.63212456 120 B
2 February 0.19865357 201 C
3 March 0.31978766 150 B
4 April 0.88575752 96 A
5 May 0.01307491 115 B
933:教えてください2-2
08/08/17 10:37:05
<<932 ご説明ありがとうございます。
data=(X,Y,Z)の中でZについてある範囲でいくつかに分類したかった
ので質問させていただきました。
これまではsubset()を何度も繰り返していました。
cbind()はとても便利そうですね。助かりました。
934:教えてください2-3
08/08/17 16:39:23
「聞くは一時の恥、聞かぬは一生の恥」という諺もありますので
皆様にもう一つ質問させてください。
次のようなデータがあります。
X Y Z
20 10 120
30 56 201
5 40 150
12 25 96
19 27 115
2 30 165
10 23 85
X,Yの散布図を描きたいのですが、条件としてZ<100のときは赤丸(凡例)、100<=Z<150のとき青丸、
Z>=150のとき緑丸とするにはどのようにしますか?
どうぞよろしくお願いいたします。
935:132人目の素数さん
08/08/18 03:54:23
>>934
もはやあなたを相手しているのは私だけのような気がするが、
> dat <- data.frame(x=c(20,30,5,12,19,2,10),y=c(10,56,40,25,27,30,23),z=c(120,201,150,96,115,165,85))
> cols <- c("red","blue","green")
> z <- cut(dat$z,c(-Inf,100,150,Inf),include.lowest=TRUE)
> plot(dat$x,dat$y,col=cols[z],pch=19)
legendは自分で考えてみなさい
936:132人目の素数さん
08/08/18 18:52:15
超基本的なことかもしれないんだけど、
> 123.05 - 123.02
[1] 0.03
> (123.05 - 123.02) == 0.03
[1] FALSE
で、FALSEが返ってくるのは、なぜ?
色々本を見たんだけど、どこにも理由が出ていないし・・・
俺のOSX版だけかな。
937:132人目の素数さん
08/08/18 20:42:56
浮動小数点演算による誤差。そのままでは、どうやっても回避不能。
> 123.05-123.02
[1] 0.03
> sprintf("%.15e", 123.05-123.02)
[1] "3.000000000000114e-02"
>
どうしてもそこで TRUE が欲しい場合には、
> (1.0 - 123.02/123.05) - 0.03/123.05 < 1.0e-15
などとする。
938:132人目の素数さん
08/08/18 20:48:46
間違った、こっちの方が良いな。
>abs(1.0 - 123.02/123.05 - 0.03/123.05)< 1.0e-15
939:132人目の素数さん
08/08/18 20:53:12
>>936
いいところに気がついたね。数値計算の世界にようこそ。
> (123 - 122) == 1
[1] TRUE
> (123 - 122.5) == 0.5
[1] TRUE
> (123 - 122.75) == 0.25
[1] TRUE
> (123.05 - 123.02) == 0.03
[1] FALSE
> (123.06 - 123.02) == 0.04
[1] FALSE
整数は正確に保持され、小数部分を持つ数も,小数部が2進数で表されるもの(0.5, 0.25, 0.125 など
などや,それらの和で表現されるもの)は,正確に保持される。一方、それ以外の数は,"近似値"が保
持され、上記ような結果になる。Execelの計算がいい加減なのは上記問題を無視しているから。Rユー
ザは、きちんと考慮してプログラムを作るべき
940:132人目の素数さん
08/08/19 04:14:30
>>937
>>938
>>939
ご親切なご指導ありがとう後います。
何となく浮動小数点関連ではないかなと考えていたのですが
思ってたより、誤差が入ってしまうので正確に計算するのは難しそうですね。
とりあえず、最大小数点二位までのデータなので
全てのデータを百倍して、整数域で扱うことにしました。
ありがとうございました。
941:132人目の素数さん
08/08/26 22:44:00
質問させていただいてもいいでしょうか。。
データフレームでV2は世帯番号、V3は個人番号だとして
$ V2 : int 1 1 1 1 1 1 1 1 3 14 ...
$ V3 : int 1 1 2 2 3 3 4 5 1 1 ...
unique()で重複する要素をのぞいて以下のように各個人の合計を数えたいのですが
1-1,1-2,1-3,1-4,1-5,3-1,14-1,....
どのようにuniqueを使えばよいでしょうか?
また他にやり方があれば教えていただけないでしょうか。。
942:132人目の素数さん
08/08/27 00:45:41
>>941
その答えと同じにするなら
VV<-paste(V2,"-",V3)
unique(VV)
とするとよいが。
943:132人目の素数さん
08/08/27 11:53:31
Ubuntuのリポジトリに新しいr-base-coreとr-recommendedが来た。
2.7.2だな。
944:943
08/08/27 11:54:43
s/リポジトリ/CRANのリポジトリ/
945:132人目の素数さん
08/08/30 03:07:30
single-case design などに使える Rondamization test の
パッケージってどこかにないでしょうか。
パッケージ名等ご存じの方がいましたら教えてください。
946:132人目の素数さん
08/09/06 19:08:24
Rの出力
------------------------------------
Anova Table (Type II tests)
Response: y
Sum Sq Df F value Pr(>F)
x 91.779 1 88.525 8.19e-05 ***
Residuals 6.221 6
------------------------------------
のようなものをクリップボード経由で
EXCELに貼り付けて表形式にする方法があれば教えてください。m(_ _)m
("Sum Sq","Df","6.221"等をここのセルに整列する方法)
947:132人目の素数さん
08/09/06 20:21:43
>>946
write.csv()
948:132人目の素数さん
08/09/06 22:05:38
>>947様
忙しいなか、初心者の質問にお答え頂きありがとうございます。
------------------------------------
> write.csv(Anova(RegModel.1))
"","Sum Sq","Df","F value","Pr(>F)"
"x",91.7794117647059,1,88.5248226950355,8.1900177580363e-05
"Residuals",6.22058823529412,6,NA,NA
------------------------------------
見事にカンマ区切りになり、感動しているのですが、ここから
どうやってクリップボード経由でEXCELに持ち込んだら良いのでしょうか。
ファイルに一旦書き込まないと無理でしょうか。
書き込むのであれば、画面出力を.txtにしてテキストファイルウィザード
から読んだ方が忠実に再現されるように思います。生意気言ってすみません。
949:132人目の素数さん
08/09/07 15:48:27
946ですが、947様のお返事を見て
------------------------------------
Anova Table (Type II tests)
Response: y
Sum Sq Df F value Pr(>F)
x 91.779 1 88.525 8.19e-05 ***
Residuals 6.221 6
------------------------------------
に対して
------------------------------------
<TABLE>
<TR><TD>Anova</TD><TD>Table</TD><TD>(Type</TD><TD>II</TD><TD>tests)</TD></TR>
<TR><TD>Response:</TD><TD>y</TD></TR>
<TR><TD>Sum</TD><TD>Sq</TD><TD>Df</TD><TD>F</TD><TD>value</TD><TD>Pr(>F)</TD></TR>
<TR><TD>x</TD><TD>91.779</TD><TD>1</TD><TD>88.525</TD><TD>8.19e-05</TD><TD>***</TD></TR>
<TR><TD>Residuals</TD><TD>6.221</TD><TD>6</TD></TR>
</TABLE>
------------------------------------
のように文頭に<TABLE>、文末</TABLE>を付加、行頭に<TR><TD>、行末に</TD></TR>を付加
連続するスペース" "を</TD><TD>に置換すればSum Sqの行がずれますが
EXCEL表として貼り付くと考えました。素人考えですが・・・。
そんな関数ない、もしくは簡単には作れないですかね。
950:132人目の素数さん
08/09/07 16:44:43
946ですが、自己解決しました。
EXCELに貼り付けてから「[区切り位置] コマンドを使用してデータを区切る方法」
URLリンク(support.microsoft.com)
板汚し礼しました。(しかもスレチ?)
>>947様
有用な情報、ありがとうございました。逝ってきます。
951:132人目の素数さん
08/09/14 22:37:50
R Tipsもう売ってないやんけ orz
新版マダー?
952:132人目の素数さん
08/09/14 22:48:07
>>951
発行元の九天社が倒産したからね。
ここを見ればほとんど補えるよ↓
URLリンク(cse.naro.affrc.go.jp)
953:132人目の素数さん
08/09/14 23:16:04
age
954:132人目の素数さん
08/09/20 22:10:26
ほとんど知識の無いまったくのR初心者なのですが私にも使えるようになるでしょうか?
955:132人目の素数さん
08/09/20 22:15:52
>>954
最初は誰もが初心者
956:954
08/09/20 22:21:03
私は学生なんですが授業でRを使うんですよ
単位を取るとなるとそれなりの知識がないと厳しいのではないかと思い・・・
回帰分析などといったことをやるそうです
957:132人目の素数さん
08/09/26 23:45:10
それなら必要な知識は統計の知識のような気もしないでもない。
958:132人目の素数さん
08/09/28 14:36:32
Rjp Wiki って何であんな排他的雰囲気なんだろうか。
傍から見てるとすごい心証わるいんだが。
959:132人目の素数さん
08/09/28 15:05:04
ほんとだね
アレは改めないとダメだね
960:132人目の素数さん
08/09/28 20:09:12
実務を知らない学者の集まりだから
961:132人目の素数さん
08/10/05 14:44:50
>>956
Rによるやさしい統計学って本がお勧め
統計学初心者でもR初心者でも取っ付きやすいと思う
962:132人目の素数さん
08/10/06 22:51:11
3.45%という文字列を0.0345という数字に変換する方法を教えてください。
963:132人目の素数さん
08/10/07 02:11:24
繰り返し文を使って大量にグラフを出力したいのですが、for文で使う変数をファイル名に取り込むときはどうやればいいいですか?
シェルでいう
i=1
filename="${i}.png"
の${}です・
964:914
08/10/08 18:38:15
>>963
>filename="${i}.png"
んで、イイんじゃね
> for( i in 1:5 ){
+ filename <- sprintf("%d.png", i)
+ cat(filename, "\n")
+ }
1.png
2.png
3.png
4.png
5.png
965:914
08/10/08 19:22:55
「R によるやさしい統計学」の感想
(1) ○
第6章 2つの平均値を比較する
第7章 分散分析
複数の標本、対応のあるなし、3つ以上の平均値の比較
などが、連続的に扱われていて、非常にわかりやすい。
(2) ◎
第18章 人口データの発生
第19章 検定の多重性と第1種の誤りの確率
第20章 検定力分析によるサンプルサイズの決定
この説明の順番は、すばらしい。
(3) ×
第4章 母集団と標本
第5章 統計的仮説検定( の最初の数ページ )
序文(vi)の「対象となる読者」が、この部分を理解できるとは思えない。
初心者に、確率変数、確率分布の説明が不十分。
966:132人目の素数さん
08/10/08 19:57:14
あのぉ・・・
3.45%という文字列を0.0345という数字に変換する方法を教えてください。
不可能なのでしょうか?
967:914
08/10/08 21:15:02
>>966
>3.45%という文字列を0.0345という数字に変換する方法を教えてください。
こんな感じかな
> s="3.45%"
> n=as.double(substr(s, 1, nchar(s)-1))/100.0
> n
[1] 0.0345
968:132人目の素数さん
08/10/08 22:56:01
Σ(-ロ-)スマートにはいかないみたいですね。
ありがとうございました。
969:132人目の素数さん
08/10/08 23:12:02
質問者ではないですが、
おそらく、データを取り込むときに
xx.x% 書式を小数データに自動変換する
機能があるんじゃないだろうか。
どこのソフトにもあると思うので、Rにもあるのではないかな
だれか知らない?(R知らないもので)。
970:132人目の素数さん
08/10/09 04:02:25
>>964
ありがとうございます。
971:914コテ最後
08/10/09 18:57:44
>>968
>Σ(-ロ-)スマートにはいかないみたいですね。
以下は、最近話題ノ全国テスト、都道府県別の「数学A」の正答率(中学生)
第2カラムが、該当箇所(3.45%) ね。
D:\Somewhere>type in.txt
都道府県,正答率
北海道,68.6%
青森県,73.9%
岩手県,68.6%
(1) オレならば、awk でやっちまう。 under Cygwin, Linux
gawk -F, 'NR>1{ sub(/%/,"",$2); $2=$2/100.0; } { print $0; }' in.txt > in2.txt
(2) R でやるならば、あらかじめエディタで % だけを削除しておく。
その後、R の transform で、1/100 する。
> tmp1 <- read.csv("in2.txt")
> tmp2 <- transform(tmp1, 正答率2=as.numeric(正答率)/100)
> df <- tmp2[,c(1,3)]
> df
都道府県 正答率2
1 北海道 0.686
2 青森県 0.739
3 岩手県 0.686
972:132人目の素数さん
08/10/09 22:18:56
むむむむむ・・・・なんというか
ふ~結構面倒
973:132人目の素数さん
08/10/09 22:29:49
やっぱり学習用かな。。
974:132人目の素数さん
08/10/09 23:12:30
> rmpercent <- function(x){x<-as.character(x);as.numeric(substr(x,1,nchar(x)-1))/100}
> rmpercent("3.45%")
[1] 0.0345
> tmp1 <- read.csv("in.txt")
> tmp1
都道府県 正答率
1 北海道 68.6%
2 青森県 73.9%
3 岩手県 68.6%
> tmp1[,2] <- rmpercent(tmp1[,2])
> tmp1
都道府県 正答率
1 北海道 0.686
2 青森県 0.739
3 岩手県 0.686
975:132人目の素数さん
08/10/09 23:39:40
> tmp1[,2] <- rmpercent(tmp1[,2])
最初からこういうの用意されていないんだろうか?ありそうな気もするが
> rmpercent <- function(x){x<-as.character(x);as.numeric(substr(x,1,nchar(x)-1))/100}
%なら100で割ること決まって居るし、この行はなくても良いくらいだよね。
利用言語というよりアルゴリズム作り用なんだろうな、でも余分が多い。
でも、そうだから仕方ないんだけど
回答頂いた方への不満ではありませんので。もうしわけありませんでした。
ありがとうございます。
976:132人目の素数さん
08/10/10 01:02:16
詳しい人に質問。15年ほど前、大学2年の一般教養で
東大出版会の統計学入門を種本にした授業で単位を取った。
なぜか統計学入門は楽しく読めて、独学して一応
わかった「つもりになった」が、就職後、統計学と疎遠になったら
ほとんど全部忘れてしまった。
で、このたび仕事で必要になったんだが、予算上SASやSPSSには手が出せず、
Rの存在を知って早速インストールし、
関係サイトをあちこち見て回って勉強し直しているのだが、
もしかして、1991年刊の統計学入門で取り上げられている手法は、
WindowsXPがサクサク動くパソコンでRが使える時代には
もう古くさいものが少なからず含まれているのではないか?
977:132人目の素数さん
08/10/10 07:19:07
>>976
手で電卓たたいて計算する必要はないんじゃないか?という意味なら
その通りだが、それは1991年でも同じ。教科書は学習用。
統計学を学習するということにおいて統計学入門はまだいい本だと思うよ。
978:974
08/10/11 08:44:56
>>975
自分にとって使いやすい統計ソフトであるかどうかという以前に、オープンソースとは何かという視点を
持った方がよいと思うぞ。必要性を感じた人が必要な機能を付加する(付加できる)ということは、逆に
言えば、あなたが欲しい機能が実装されていないのは、誰も必要と考えていないから。あなたが必要なら
あなたがrmpercent()のように追加すればよい。
私自身は%を少数に変換する必要性を感じたことがない。表計算ソフトで%表示されいても実態は小数デー
タだし、CSV経由で読み込んだらnumericになっている。
979:132人目の素数さん
08/10/11 13:40:19
>>978
>私自身は%を少数に変換する必要性を感じたことがない。表計算ソフトで%表示されいても実態は小数デー
>タだし、CSV経由で読み込んだらnumericになっている。
質問は、一般的に統計ソフトなどはそういう機能を持ち合わせているので
Rにそういう機能はないの?という質問でしょう。
980:132人目の素数さん
08/10/11 19:29:58
禁句になっているような気もするが、
Rをメインで使っている人はデータ加工をどのようにしているの?
981:132人目の素数さん
08/10/11 20:04:23
>>980
それはRにデータを読み込んでからのデータ加工場面と、
外部ファイルにあるデータをRに読み込むための場面に分けて
考えた方がいいと思う。
同様に、テキストデータと数値データについても、同じように
場面を分けないと、データ加工についての議論はすれ違いになる
のではないかと思う。
982:132人目の素数さん
08/10/11 21:08:05
分析前のデータ加工(読み込み前)ってかなり重要ですよね?
あとさ、やっぱり結果の信頼性に欠けるのかなぁ・・・
R歴そんなに長くないのですが、例えばdecomposeの乗法モデル。
Helpでは、Y[t] = T[t] * S[t] + e[t] になってるのに、
実装上は、Y[t] = T[t] * S[t] * e[t] ですよ・・・
無い物は自分で造る、間違っているものは自分で直せの精神ですか?
う~ん・・・
983:132人目の素数さん
08/10/11 21:44:55
二年九十四日。
984:132人目の素数さん
08/10/12 20:34:25
Rとoctaveならどっちを習得したほうが良い???大学生です。
985:132人目の素数さん
08/10/12 21:44:55
二年九十五日。
986:132人目の素数さん
08/10/12 22:03:36
>>984
背景にあるSとMatlabの関係で
統計解析主体ならR、シミュレーション系が主であればoctave。
但し、実業界で考えるなら、Matlabは製造系で仕事がらみでの利用は結構
多いが、Sはあまり多くなく(ただし、企業内の研究など個々人の利用はある)
求人は多くない(Rとoctaveに限定すれば、企業内でのoctave利用はほとんど
ない)。
参考に。
>>982
取り込んでからの(数値データの)処理は強いが、前処理として
外部ファイルのあつかいは非常に弱い。その辺のニーズ異なると思われる。