1 名前:132人目の素数さん mailto:sage [2011/01/09(日) 17:31:49 ] R は統計計算とグラフィックスのための言語・環境です。 統計計算で重宝するデータ型や、複数要素を処理する演算や関数、 解析結果を表示するグラフィックなど、多彩な機能を提供します。 ●関連サイト The R Project www.r-project.org/ RjpWiki www.okada.jp.org/RWiki/ リンク集 www.okada.jp.org/RWiki/?%A5%EA%A5%F3%A5%AF%BD%B8
786 名前:132人目の素数さん mailto:sage [2013/03/13(水) 01:03:30.88 ] 教えて下さい。 rawデータをcharacterにしたいです。 chromeの localstorageのデータを整理しようとしています。 ドメインごとのsqlite形式?ファイルがあり、ItemTableというテーブル名で、 key,valueの項目でデータが入っています。 valueのデータ形式がblob型です。 RSQLiteで、 ret <- dbGetGuery(con, "select value ItemTable") でデータフレームでデータが返って来ました。 class(ret[1,1][[1]]) >> raw それで、これから先、 ret[1,1][[1]] を characterにしたのですが、 どうすればいいのでしょうか?
787 名前:132人目の素数さん mailto:sage [2013/03/13(水) 12:10:10.92 ] >>786 内部でSQLiteを使っているソフトが最近多いなと思っていたが、 Chromeもそうなんだ。 再現して検証できない質問なので、適当な回答になるけど、 as.character(ret[1,1][[1]])でどのようなエラーになりますか?
788 名前:786 [2013/03/13(水) 12:57:52.15 ] >>787 ありがとうございます。 chrome側のconsoleで、 localstorage.hoge = "abc" として、 sqlteデータを入れた時に、 R側でそのblob型のデータ(abcというデータ, 他のsqlite viewerで確認済み) を読むと、 > ret[3,2][[1]] [1] 32 00 30 00 31 00 33 00 2d 00 30 00 33 00 2d 00 31 00 32 00 54 00 31 00 34 [26] 00 3a 00 33 00 35 00 3a 00 35 00 30 00 2e 00 31 00 34 00 33 00 5a 00 となり、 as.character(ret[3,2][[1]]) [1] "32" "00" "30" "00" "31" "00" "33" "00" "2d" "00" "30" "00" "33" "00" "2d" [16] "00" "31" "00" "32" "00" "54" "00" "31" "00" "34" "00" "3a" "00" "33" "00" [31] "35" "00" "3a" "00" "35" "00" "30" "00" "2e" "00" "31" "00" "34" "00" "33" [46] "00" "5a" "00" となります。 こういうのを16進数のbyteデータというのですよね? これをcharacterにencode?してやりたいです。
789 名前:132人目の素数さん mailto:sage [2013/03/13(水) 13:54:01.89 ] >>788 元データのエンコードが分からないと厳しいと思います。日本語でしょうか。 英語(ASCII)なら、 rawToChar(ret[3,2][[1]])とするとうまく行くかも知れません。
790 名前:789 mailto:sage [2013/03/13(水) 15:25:46.98 ] >>788 ちゃんと読んでいませんでした。申し訳ない。 これは「abc」という文字列なんですね。 ちなみに"abc"の8進数表記は次の通り $ echo abc | od -to1c 0000000 141 142 143 012 a b c \n 10進数表記 $ echo abc | od -td1c 0000000 97 98 99 10 a b c \n 16進数表記 $ echo abc | od -tx1c 0000000 61 62 63 0a a b c \n >>788 を見る限り、abcじゃなさそうに思える。 16進数と仮定すると、 2 NUL 0 NUL 1 NUL 3 NUL - NUL 3 NUL - NUL 1 NUL 2 NUL T NUL 1 NUL 4 NUL : NUL 3 NUL 5 NUL : NUL 5 NUL 3 NUL . NUL 1 NUL 4 NUL 3 NUL Z NUL となるが、NULを飛ばすと、2013-3-12T14:35:53.143Zで、日付時間っぽいな。 これ以上は分からないので、識者の方にパス。
791 名前:132人目の素数さん mailto:sage [2013/03/13(水) 15:28:55.56 ] >>789 ありがとうございます。 かなり前進しました。 さきほど、データの提示は、間違え(一つずれたものでした) "abc"というデータを入れたときは、 ret[4,2][[1]] [1] 61 00 62 00 63 00 rawToChar(ret[4,2][[1]],multiple=T) [1] "a" "" "b" "" "c" "" なぜか、空文字が入りますがOKです。 また、日本語の場合ですが、 私のwindows環境の文字コードは、cp932だと思います。 >Sys.getlocale() [1] "LC_COLLATE=Japanese_Japan.932;LC_CTYPE=Japanese_Japan.932;......." それで、データとして "あい" と localstorageに入れて、 RSQLiteでとりだしたところ、 ret[5,2][[1]] [1] 42 30 44 30 となり、 これは、文字コード表を見ると、 unicode (あい) => UTF16形式 3042 3044 と、 2バイトの間隔で前後入れ替えしたものに見えます。 mapply(function(a,b)paste(b,a,sep=""), x[seq(1,3,2)], x[seq(2,4,2)]) [1] "3042" "3044" これを、"あい" という文字で、 できれば、UTF8形式でファイルにおとしたいのですが、、
792 名前:132人目の素数さん mailto:sage [2013/03/13(水) 15:31:21.55 ] >>789 さん 返事が入れ違いになりました。 "abc"ではなく、日付でした。 間違えてました。
793 名前:132人目の素数さん mailto:sage [2013/03/13(水) 21:35:55.82 ] データの補間について質問させてください 下記のようなCSVファイル(,区切り)が存在します。ID、NAME、MONTHは各情報の最初の行にしかデータとして入っておりません。 ---------- データ部 ---------- ID, NAME, MONTH, PRICE, NUMBER AAA1, Apple, 1, 100, 10 , , , 98, 12 , , , 102, 8 AAA2, Orange, 2, 120, 3 , , , 130, 4 , , , 112, 8 ------------------------------ これをデータフレームとして読み込みます。 ID NAME MONTH PRICE NUMBER AAA1 Apple 1 100 10 "" "" "" 98 12 "" "" "" 102 8 AAA2 Orange 2 120 3 "" "" "" 130 4 "" "" "" 112 8 ....... となります。 ここでID NAME MONTHを上の行から補間したいのですが、どのようにすればよいでしょうか? ID NAME MONTH PRICE NUMBER AAA1 Apple 1 100 10 AAA1 Apple 1 98 12 AAA1 Apple 1 102 8 AAA2 Orange 2 120 3 AAA2 Orange 2 130 4 ........ としたいです。補間さえできれば形式はデータフレームでなくても結構です。よろしくお願いいたします。
794 名前:786 [2013/03/13(水) 22:48:40.11 ] >>793 stackoverflow.com/questions/2776135/last-observation-carried-forward-in-a-data-frame を参考にするといいよ。 ""をNAに変えておかないといけないので、 df[ df == ""] <- NA としておいて、 library(zoo) na.locf(df) まだ、rawデータからcharacterに変えられてない、、、
795 名前:132人目の素数さん mailto:sage [2013/03/14(木) 09:59:33.96 ] >>793 単純にコピーするだけでは駄目なの? > sample <- data.frame(matrix(c("AAA1","Apple",1,100,10, + "","","",98,12, + "","","",102,8, + "AAA2","Orange",2,120,3, + "","","",130,4, + "","","",112,8), ncol = 5, byrow = TRUE)) > names(sample) <- c("ID", "NAME", "MONTH", "PRICE", "NUMBER") > sample ID NAME MONTH PRICE NUMBER 1 AAA1 Apple 1 100 10 2 98 12 3 102 8 4 AAA2 Orange 2 120 3 5 130 4 6 112 8 > for(i in 1:(nrow(sample) - 1)){ + if(sample[i+1, 1] == ""){ + sample[i+1, 1:3] <- sample[i, 1:3] + } + } > sample ID NAME MONTH PRICE NUMBER 1 AAA1 Apple 1 100 10 2 AAA1 Apple 1 98 12 3 AAA1 Apple 1 102 8 4 AAA2 Orange 2 120 3 5 AAA2 Orange 2 130 4 6 AAA2 Orange 2 112 8
796 名前:793 mailto:sage [2013/03/14(木) 22:00:08.24 ] >>794 ありがとうございます。 無事うまくいけました。 質問に答えることができればよかったのですが、 残念ながら私にはわかりません。申し訳ありません。 >>795 実際のデータは100万行ほどありますので、 ループを回すと試してはいませんが時間がかかるかと。。。。
797 名前:794 mailto:sage [2013/03/15(金) 15:10:27.37 ] >>796 いえいえ。 791の疑問は、説明の仕方が悪い気がする。 単純な文字コードの問題なのだろうけど、そこのところがよくわかてっない。 他の言語でやりますのでOKです。
798 名前:132人目の素数さん [2013/04/02(火) 00:12:39.59 ] DMwR::SMOTE関数のエラーについて教えてください。 以下の処理を実行するとエラーになります。 library( DMwR ) work00 <- data.frame( kbn=c(rep("A",12),rep("B",3)) , tuikavar=c(rnorm(12,20),rnorm(3,2)) ) SMOTE( kbn ~ . , data=work00 , perc.over=200 , perc.under=100 ) >以下にエラー `colnames<-`(`*tmp*`, value = c("kbn", "tuikavar")) : >'names' 属性 [2] はベクトル [1] の長さと同じでなければなりません ドキュメントを読みつくしたつもりなのですが、バグとしか思えません。 詳しい方、このバグは既知のものなのでしょうか?それとも回避方法があるのでしょうか?
799 名前:132人目の素数さん mailto:sage [2013/04/02(火) 09:47:57.43 ] >>798 その作者のTorgoさんに聞く方がここで聞くよりも早いと思うぞ
800 名前:狢 ◆yEy4lYsULH68 mailto:age [2013/04/02(火) 16:08:36.00 ] 狢 > 1 :西独逸φ ★:2007/08/05(日) 05:47:55 ID:???0 >徳島県警阿南署などは5日未明、東京都足立区千住寿町、 >筑波大学准教授、増田哲也容疑者(50)を >県迷惑行為防止条例違反(痴漢行為)容疑で逮捕した。 > >調べでは、増田容疑者は、4日午後4時20分ごろから約50分にわたり、 >JR牟岐線の列車内で、県内の >専門学校生の女性(21)の胸や太ももなどを触った疑い。調べに対し、 >「夏休み期間に、講演活動を兼ね >て旅行していた。好みの女性だったのでムラムラした」と話しているという。 >
801 名前:132人目の素数さん mailto:sage [2013/04/03(水) 23:34:54.43 ] R 3.0.0 キタ━━━━(゚∀゚)━━━━!!
802 名前:132人目の素数さん mailto:sage [2013/04/04(木) 12:51:51.74 ] 3.0.0に上げたら、保存されたワークスペースに非互換部分が含まれていたみたいで、 R (正確にはR.app GUI)が起動しなくなったw コンソールの方は使えたので、すぐに対処できたけど、R初心者は要注意だな。 バージョン上げたら、ライブラリのコンパイルをやり直さなくてはいけないので面倒だよな。 configureにオプションを渡さないといけないのもあるし。 > nrow(library()$results) [1] 267 みんなは、いくつぐらいなの?
803 名前:132人目の素数さん mailto:sage [2013/04/04(木) 13:07:53.30 ] rstudioの対応待ち
804 名前:132人目の素数さん mailto:sage [2013/04/04(木) 13:11:23.49 ] メインPCのlibraryは262 3.1とか3.0.2が出るまでとりあえず様子見だな
805 名前:132人目の素数さん mailto:sage [2013/04/04(木) 22:31:14.28 ] > nrow(library()$results) [1] 2961 Rcmdrのせいなのか随分と多い。 自分の環境はR version 2.13.0 (2011-04-13)
806 名前:132人目の素数さん mailto:sage [2013/04/05(金) 01:02:41.34 ] 背景色とフォントカラーを変えたいんだけど、etc\Rconsoleを設定しても全然反映されない font = TT MS Gothic points = 20 background = black normaltext = white usertext = LightGreen highlight = Red style = normal # Style can be normal, bold, italic 何が悪いんだろう
807 名前:132人目の素数さん mailto:sage [2013/04/05(金) 07:49:15.90 ] 回答になっていなくて申し訳ないのだが、R以外のエディタを使うのが良いかと デフォルトエディタらしいといえばそうなのだが、Rエディタはあまりに低機能過ぎる モニタが大きい人ならRstudio、ノーパソ派ならNotepad++ & NppToR、あたりが個人的おすすめ
808 名前:132人目の素数さん mailto:sage [2013/04/05(金) 09:33:00.80 ] >>806 は?ターミナルエミュレータの設定にRは関係ないだろ、と思ったら、 > font = TT MS Gothic Windowsな方でしたか。 私も回答になっていなくて申し訳ないけど、 背景やフォントカラー、構文色強調を自由に設定できるEmacs+ESSがお薦め。 Emacsは初期学習コストがかかるが、超絶便利。 初めてESSを使ったときは、あまりの便利さに気を失いそうになった。
809 名前:132人目の素数さん mailto:sage [2013/04/05(金) 15:31:00.18 ] >>803 3.0.0で使えているみたいだけど。 RStudio Ver.0.97.336
810 名前:132人目の素数さん mailto:sage [2013/04/06(土) 08:59:21.34 ] RStudioで普通に問題なく使えてる。一応2.15.3も残してはあるが3.0.0 インスコした後まだ立ち上げる機会がない。
811 名前:132人目の素数さん mailto:sage [2013/04/06(土) 13:04:58.94 ] なんか、ノートン先生に怒られた…(;・∀・) 絶対パス: c:\program files\r\r-3.0.0\bin\i386\r.dll ____________________________ ____________________________ コンピュータの評価日 2013/04/05 12:12:11 前回の使用 利用不能 起動項目 いいえ 起動済み はい ____________________________ ____________________________ 少数のユーザー Norton コミュニティの 50 人未満のユーザーがこのファイルを使いました。 ____________________________ ごく新しい このファイルの更新日はここ 1 週間以内です。 ____________________________ 高 これは危険度が高いファイルです。 ____________________________ 脅威の詳細 SONAR 保護はコンピュータ上で疑わしいプログラムの活動を監視します。 ____________________________ 元ファイル: r.dll
812 名前:132人目の素数さん mailto:sage [2013/04/07(日) 12:09:36.61 ] 怪しいサイトから拾い食いしただろ
813 名前:132人目の素数さん mailto:sage [2013/04/07(日) 17:13:19.15 ] よほどヘビーにR使う人でなければ、Emacs系はコスト>利益 「 (略) 作業効率が上がる(ように錯覚でき)ます. (RjpWikiより)」
814 名前:132人目の素数さん mailto:sage [2013/04/08(月) 11:00:43.17 ] >>813 逆。試しに使ってみるとか、RCommanderしか使わないとか、 年に数回だけ使うとかそんなレベルなら、 コンソール/RCommanderでもよいが、 ある程度使うなら、試行錯誤するためにも、エディタは必須。 常用しているテキストエディがなければ、微妙だけど。
815 名前:132人目の素数さん mailto:sage [2013/04/08(月) 12:42:11.56 ] 3.0.0は「だいぶ2系が落ちついたから番号あげてみた」程度だって公式では言ってたけど、非互換なところたくさんあるの?
816 名前:132人目の素数さん mailto:sage [2013/04/09(火) 19:51:21.47 ] >>815 過去にsave.image()しまくった資産があるのでなければ、 基本的に非互換なんて気にしなくてもよいと思うよ。 でも、Ubuntuのリポジトリは2.15.3のままだな。 単に遅れているだけか、何か理由があるのかな。 Debianの方は3.0.0が来た。
817 名前:132人目の素数さん mailto:sage [2013/04/10(水) 01:47:48.52 ] ベン図を描きたいのだけど、お勧めある? 因みに2.15だとgplotsが無いみたいでvenn()は使えないみたいでした。
818 名前:132人目の素数さん mailto:sage [2013/04/10(水) 08:58:38.30 ] >>817 > RSiteSearch("Venn") でヒットした関数やパッケージは試した上での質問かどうかで回答は変わるけど、 VennDiagramパッケージのような専用パッケージはどう?
819 名前:132人目の素数さん mailto:sage [2013/04/10(水) 10:52:02.97 ] ttp://www.biomedcentral.com/1471-2105/12/35 >>817-818 同じくVennDiagramに一票
820 名前:132人目の素数さん mailto:sage [2013/04/12(金) 10:13:54.71 ] ちょっと教えてくれろ。 x <- rnorm(100);hist(x, prob=T, ann=F) ;par(new=T) ;plot(density(x),col="red") こんな感じの正規分布っぽいグラフでXの範囲指定して、 Y軸0から確率密度の赤線までの面積を表したいんだけど、 ここを色づけする方法が判らない、 例えばXが1~2の間を塗るとき具体的にどんなコードになるか教えて下さい。
821 名前:132人目の素数さん mailto:sage [2013/04/12(金) 15:37:00.07 ] ペイント使って塗ったらいいじゃん
822 名前:132人目の素数さん mailto:sage [2013/04/13(土) 00:06:14.95 ] >>820 dat <- with(density(rnorm(100)),data.frame(x,y)) library(ggplot2) ggplot(data = dat, mapping = aes(x = x, y = y)) + geom_line() + layer(data = dat, mapping = aes(x=ifelse(x >1 & x < 2 ,x,0), y=y), geom = "area", geom_params=list(fill="red",alpha=0.5)) + scale_y_continuous(limits = c(0,max(dat$y)))
823 名前:132人目の素数さん mailto:sage [2013/04/13(土) 10:48:56.27 ] >>822 ありがとう
824 名前:132人目の素数さん mailto:sage [2013/04/13(土) 23:48:23.04 ] ここがRの本スレか。 R自体統計プログラムなのかグラフィックソフトウェアなのかよくわからんけど本スレは数学板なのね。 数学嫌いだわ…。Rまで嫌いになりそう
825 名前:132人目の素数さん mailto:sage [2013/04/13(土) 23:52:28.69 ] むしろ数学界隈以外での R の用途が気になるな。なんでもできるっちゃそうなんだけど。
826 名前:132人目の素数さん mailto:sage [2013/04/14(日) 00:04:02.13 ] >>825 学生時代数学にはつらい思いでがあって… 数学的能力が全くダメでもいろんな運の巡り合わせでRと向き合わなきゃいけなくなる人もいますんでご容赦を
827 名前:132人目の素数さん mailto:sage [2013/04/14(日) 05:11:16.14 ] 統計学もグラフィックスも数学じゃないよ。数学者はそんなもの相手にせんわ
828 名前:132人目の素数さん [2013/04/14(日) 07:37:32.81 ] カール・フリードリヒ・ガウス...
829 名前:132人目の素数さん mailto:age [2013/04/14(日) 11:00:26.70 ] __ノ)-'´ ̄ ̄`ー- 、_ , '´ _. -‐'''"二ニニ=-`ヽ、 / /:::::; -‐''" `ーノ / /:::::/ \ / /::::::/ | | | | | |:::::/ / | | | | | | | |::/ / / | | || | | ,ハ .| ,ハ| | |/ / / /| ,ハノ| /|ノレ,ニ|ル' | | | / / レ',二、レ′ ,ィイ|゙/ 私は只の数ヲタなんかとは付き合わないわ。 . | \ ∠イ ,イイ| ,`-' | 頭が良くて数学が出来てかっこいい人。それが必要条件よ。 | l^,人| ` `-' ゝ | さらに Ann.of Math に論文書けば十分条件にもなるわよ。 | ` -'\ ー' 人 一番嫌いなのは論文数を増やすためにくだらない論文を書いて | /(l __/ ヽ、 良い論文の出版を遅らせるお馬鹿な人。 | (:::::`‐-、__ |::::`、 ヒニニヽ、 あなたの論文が Ann of Math に accept される確率は? | / `‐-、::::::::::`‐-、::::\ /,ニニ、\ それとも最近は Inv. Math. の方が上かしら? | |::::::::::::::::::|` -、:::::::,ヘ ̄|'、 ヒニ二、 \ . | /::::::::::::::::::|::::::::\/:::O`、::\ | '、 \ | /:::::::::::::::::::/:::::::::::::::::::::::::::::'、::::\ノ ヽ、 | | |:::::/:::::::::/:::::::::::::::::::::::::::::::::::'、',::::'、 /:\__/‐、 | |/:::::::::::/::::::::::::::::::::::::::::::::::O::| '、::| く::::::::::::: ̄| | /_..-'´ ̄`ー-、:::::::::::::::::::::::::::::::::::|/:/`‐'::\;;;;;;;_| | |/::::::::::::::::::::::\:::::::::::::::::::::::::::::|::/::::|::::/:::::::::::/ | /:::::::::::::::::::::::::::::::::|:::::::::::::::::::::O::|::|::::::|:::::::::::::::/
830 名前:132人目の素数さん mailto:sage [2013/04/15(月) 07:52:40.36 ] あるデータをplot(density(data))でグラフ化してます。 任意のX区間を指定して面積を求めようとしてるのですが、やり方を教えて下さい。 また、正規分布だと、dnorm(c(0,0.2,0.4,0.6,0.8,1))とやればX値に対応したY値がでるみたいですが、 任意のデータをプロットしている場合、X値からY値を取り出すにはどうやればいいのでしょうか?
831 名前:132人目の素数さん mailto:sage [2013/04/15(月) 08:54:48.29 ] 規制されて書き込めなかった。 普通はpolygon()を使う >>820 > x <- rnorm(100);hist(x, prob=T, ann=F) > a <- density(x) > polygon(a$x,a$y, col="red")
832 名前:132人目の素数さん mailto:sage [2013/04/15(月) 09:12:17.89 ] >>830 こちらも、>>831 と同じ要領。 > data <- runif(100) > plot(density(data)) > a <- density(data) として、念のために幅を確認して、 > head(diff(a$x)) [1] 0.003151153 0.003151153 0.003151153 0.003151153 0.003151153 0.003151153 横が0.003151153と分かったので、矩形の面積を計算して合計。 > sum(diff(a$x)[1] * a$y ) [1] 1.000883
833 名前:132人目の素数さん mailto:sage [2013/04/15(月) 09:21:38.51 ] >>825 統計的裏付けのない実感で申し訳ないが、 確かに、10年くらい前は数学・数理統計の関係者がほとんどを占めていたと思う。 しかし、ここ5年ほどで急速に、Rをプログラミング言語としてとらえるIT関係のユーザが増えたし、 心理学研究や医学研究にも地道に普及している。 Rユーザ会の出席者を見渡しても、数学関係者はマイノリティになりつつあると思う。
834 名前:132人目の素数さん mailto:sage [2013/04/15(月) 12:01:36.43 ] こんな記事もある 「次に来る」プログラミング言語を占ってみる ttp://www.atmarkit.co.jp/ait/spv/1201/17/news133_2.html 今後の動向を予感させるもう1つの動きは、プログラミング言語「R」が2012年1月のTIOBE PCIの19位に入ったことだ。 (中略)Rが話題になり始めた背景には、最近注目を浴びているある種のコンピュータ技術がある。 大量のデータを効率良く処理する技術だ。「ビッグデータ」という言葉を耳にした方は多いと思う。(中略) RはGoogleが社内のデータ解析に活用しているなど、ビッグデータを扱う企業において重要なプログラミング言語となっており、今後広い範囲で話題になる可能性がある。
835 名前:132人目の素数さん mailto:sage [2013/04/15(月) 21:12:53.25 ] 後藤大地ってどんなやつかと思ったら小物もいいとこじゃん。聞く耳もつに 値しないね。
836 名前:132人目の素数さん mailto:sage [2013/04/15(月) 23:59:44.25 ] ちゃんと取材にいってる人だと思うが、どちらかというとPCハードの記者さんだよね。 事実として、企業のコミットが増えてlinuxみたいにRもコミッター増えてんじゃないの?