【R言語】統計解析フリーソフトR 第4章【GNU R】at MATH
【R言語】統計解析フリーソフトR 第4章【GNU R】 - 暇つぶし2ch547:543
12/06/04 09:31:57.61
grep関数群のヘルプを読んだ上で質問していたのか。
なら、下記はどうだろう?
> target[unique(as.numeric(sapply(1:length(pattern), function(i){grep(pattern[i], target)})))]
[1] "abaa" "abef" "aefe"

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

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

548:543
12/06/04 09:38:53.74
おぉ、凡ミス

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

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

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


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

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



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



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

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


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

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

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


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

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

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

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


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

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


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


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

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


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

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

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

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

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

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

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

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

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

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

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

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


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


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


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

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

統計解析R たぶんpart3くらい
スレリンク(tech板)

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

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


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

576:132人目の素数さん
12/06/28 13:28:01.62
>>575
read.ods() from ROpenOffice
URLリンク(www.omegahat.org)

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

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

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

Windowsで R CMD INSTALLを使う場合は、 別途Windows toolsetが必要らしい。
URLリンク(cran.r-project.org)

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

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

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

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

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

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


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

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

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

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

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

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

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

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

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

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

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


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


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

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

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

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

ちゃんと読め。




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


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

こういうことか?

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

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

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

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

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

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


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

> RSiteSearch("Kolmogorov-Smirnov")

以上。

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

602:baka描 ◆ghclfYsc82
12/08/08 17:29:54.67


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


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

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

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

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

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

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


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

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

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

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

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

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

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


610:132人目の素数さん
12/09/14 21:05:08.72
windowsXP世代の4GBマシンで100万レコードオーダーのdataframeを
ggplot2で描画しようとするとメモリオーバーになってしまう
なんかうまい方法はないものか

611:132人目の素数さん
12/09/15 00:15:23.75
>>610
分割して描画すればどうなる?
ggplot2じゃないけど、例えばこんな風に。
> d <- data.frame(x = runif(100), y = runif(100))
> plot(d[1:25, ], xlim = range(d$x), ylim=range(d$y))
> points(d[26:50, ])
> points(d[51:75, ])
> points(d[76:100, ])

612:132人目の素数さん
12/09/15 09:17:37.47
>>611
どうもです
確かに仰る通り、::baseのplotならば可能です

後だしですんませんが
・見た目のキレイさ
(というか先進性というか凄いことやってそうに見せられるというか。。苦笑
・カテゴリカル変数20こ程度
・引き継ぎやデータ更新等を考えて
作図のためのデータハンドリングのコーディングは最少にしたい
・自分自身の興味w

のような趣旨でggplot2でやりたいのです

613:132人目の素数さん
12/09/15 20:06:17.90
>>610
32bit?64bit?

614:132人目の素数さん
12/09/15 21:09:24.15
>>613
32bitです
会社の端末なんで詳細は不明ですが
5年くらい前の型で家庭用PCです
Rは2.15.0でパッケージは最新です
ggplot2_0.9.2.1


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

616:132人目の素数さん
12/09/17 13:49:31.71
ggplotでも分割してできるでしょ。
それでも最後の描画の際にエラーになっちゃうかな?

617:132人目の素数さん
12/09/18 00:00:46.90
>>616
はい。
ggplot2オブジェクトにそうさをくわえることはできますが、
プロットするさいにメモリオーバーエラーとなってしまいます。
(プロットせずにggsaveしようとしてもおなじです)

618:132人目の素数さん
12/09/18 14:41:03.61
>>617
じゃあ、データを間引きするしか方法がないのでは?

そもそも100万レコードを視覚化するのに、
そのまま100万レコードが必要なのか?
100万からサンプリングして1万で図を描いても同じ図になる気がするぞ。

619:132人目の素数さん
12/09/18 23:07:04.27
RにはReduce見たいな機能はないのかな

620:132人目の素数さん
12/09/19 00:02:17.70
>>618
そういわれるとそうなのです

ただ、問題は>>617なので、なぜそうなるのか分かって、
そこだけ回避できるようになれればよいのですが・・・


621:132人目の素数さん
12/09/19 09:39:21.27
そもそも全部描画できたとして、それは見るに耐えるものなのか?
例えば散布図なんかだと100万点どころか、1万点ですら多すぎて見づらいから、適切に間引くのが普通だ。

622:132人目の素数さん
12/09/20 10:57:36.08
>>620
症状から考えて
ggplot2内部的に、
画面表示や画像ファイル保存などの描画時に、
データフレームをSVGみたいな描画用データに変換してから
その描画用データを参照して描画するんだと思う
だから、100万データを扱うことはできても、
グラフ描画(保存も含む)ができない。
しかも、データをどれだけ分割しようと
最終的に描画する際には、
そのグラフに使用する全描画用データを
同時にメモリに保持している必要があるから、
分割が意味をなさない。

だから、どうしても100万データ分使いたいんだったら、
メモリオーバーしない量のデータで一旦画像に保存して、
その画像同士を重ね合わせるみたいな方法をとるしかないかな。
画像処理の手間が必要になりますが。

あるいは、グラフ用のデータを
ダイナミックアロケーションできるような方法が
あるのか知りませんが、なければ作るとか……w

623:132人目の素数さん
12/09/20 16:26:54.47
>>622
そうだな。>>622の言うとおり、ベクタ構造を保持するからメモリ不足になる。
適当なインターバルでラスタ変換をかませればよろし。
png()で分割出力して、system("convert ...")で重ねる。

624:132人目の素数さん
12/09/20 22:19:32.83
>>622
>>623
なるほど頭の中が整理されました!

・データの分布を壊さずにデータを間引く関数を作る
・分割描画して最後にラスタデータを統合する関数を作る
・高スペックPCを導入する()
のどれかって感じですね!

ちょっと試してみるデス

625:625
12/09/21 00:01:09.50
√625 = 25


626:132人目の素数さん
12/09/26 20:01:39.27
質問です。
任意の行列xを縦に複数回並べたいです。
こんな感じで書いてみたのですが、
forを使わず作れますか、
rep関数だけで実現できないですか?


mat <- NULL
x <- matrix(1:9, 3, 3)
for(i in 1:5){
mat <- rbind(mat,x)
}
mat



627:132人目の素数さん
12/09/26 22:27:54.77
>>626
>rep関数だけで実現できないですか?
できる

ヒント:
> i <- 5; paste("rbind(", paste(rep("x", i), collapse = ","), ")")
[1] "rbind( x,x,x,x,x )"


628:132人目の素数さん
12/09/26 23:09:49.40
Reduce(rbind,lapply(1:5,function(x) matrix(1:9,3,3)))

629:132人目の素数さん
12/09/26 23:40:06.82
>>627-628 ありがとうございます\(^o^)/

630:132人目の素数さん
12/10/01 04:48:45.78
>>628
do.call(rbind,lapply(1:5,function(x) matrix(1:9,3)))
5回じゃなくてもっと沢山くっつけるならdo.callのほうが速いみたい

631:132人目の素数さん
12/10/01 23:26:00.72
Rってこれから主流になるんですか?
ビッグデータ界隈でR!R!R!騒がしいです。

632:132人目の素数さん
12/10/02 12:27:05.94
主流になるのではないかと言われているけど、必ずそうなるとは言い切れない。
でも使えておいて損はないと思うよ。

633:132人目の素数さん
12/10/02 15:05:16.56
>>631
ビッグデータって何GBくらい?

素朴に考えると、Rらしいプログラムの書き方で処理するときには、
データを全てPCのメモリ上に読み込まなければならない。

しかし、オラクルに格納されたデータが、
PC1台のメモリにスッポリ収まるとはとうてい考えられない。

634:132人目の素数さん
12/10/02 19:43:58.58
>>633
それは時代遅れ。大規模なデータ処理では、データを固定したまま
処理をおこなう処理系自体をデータのあるところに移動しないと間に合わない。

既に昨年、Oracle社はデータはRDBMS上においたまま Rのコードを
実行できる仕組みを提案してるよ。フロントエンドはRで、実行はRDBMSか、
おそらく Exadata という専用ハードの上で行うと思う。

URLリンク(blogs.oracle.com)

635:132人目の素数さん
12/10/02 20:20:33.97
>>634
なるほど、オラクルサーバがR(互換)インタプリタを内蔵しているというわけですか。
Rが凄いというよりもORACLEの商魂が凄い。

そういえば、DBMSや統計ソフトのベンダーが
「顧客のニーズを読めてませんでした」とか言ったらギャグになる。

636:132人目の素数さん
12/10/03 20:37:17.21
>>634
その手の話はOracleに限った話ではない
URLリンク(www.revolutionanalytics.com)

と言うより、Oracle使ってた人がRなんか使うのかね?
そういう人はSASとか使うような気がするが。

637:132人目の素数さん
12/10/03 22:48:32.44
>>636
うちはOracleとRを使ってる。会社のデータはOracleで管理してるが、
それを可視化したり、対話的に解析するのにRが便利。
両者はODBCデータソース経由でシームレスに繋がる。

確かにSASはいいんだけどライセンス料金が高いので使える人が
限られてしまうが、Rならそういうこと気にせずに済むのがいい。
ただしRはサポートが課題になりやすいけどね。

もしOracleが有償でもRのサポート提供するなら、それを評価する
企業ユーザもいるんじゃないかな?

638:132人目の素数さん
12/10/03 23:16:24.69
Rで分析が済ませるデータ量の会社はそれでもいいけど、そんな会社はDB側もAccessで十分そうね。

639:132人目の素数さん
12/10/03 23:33:39.40
Rでは社内で解析したものを環境丸ごと渡して
加工してもらうこともできるのかな?

640:132人目の素数さん
12/10/03 23:44:58.20
データサイエンティストとして経験を積むにはどの業界が良いのだろうか?
色々考えてみた。

SNS データ量が多い。分析前提でDBが設計してある。データドリブンが前提
銀行 顧客属性、預貯金データ保有、ローン情報
保険 顧客属性、病歴情報保有
クレジットカード 顧客属性、ローン情報、購買データ保有

SNSかクレジットカードだろうか。

641:132人目の素数さん
12/10/03 23:53:37.59
Tポイントカードの新会社だろ、JK!w

642:132人目の素数さん
12/10/03 23:56:05.36
POSデータがあれば、どこでもおk

643:132人目の素数さん
12/10/04 00:01:14.41
Tポイントカード、POSデータの情報量なんてたかが知れてると思うな。

644:132人目の素数さん
12/10/04 00:28:41.27
>>637
SASのライセンス料を気にしてOracleのライセンス料を気にしないのは謎だな
Oracleでまともにビッグデータを扱うと千万円の単位では済まないのに…

645:132人目の素数さん
12/10/04 15:32:50.43
企業のことは分からないが、
PostgreSQL + Rという組み合わせは論外なのかな?

646:132人目の素数さん
12/10/04 20:11:25.61
>>645
PostgreSQLはBSDライセンスで、RはGPLじゃなかったっけ?
言語処理系部分の流用は出来ないんじゃないの?

647:132人目の素数さん
12/10/04 21:31:10.07
>>644
Oracle は基幹系の投資に含めやすいし、実際に支払うライセンス料は
年間サポート料やコンサル費に比べれば大した金額じゃないと思う。
むしろコンサル費がべらぼうに高い。

その延長でゆくと、分析ツールはSASでもRでもいいが、こういう分析ツールを
活用できる社員を育成するのに金が掛かるし、企業での課題だと思う。
ちょっと外れてきたね。

648:132人目の素数さん
12/10/04 22:57:30.45
Postgre + R だと生データを直接処理(モデリング)できないでしょ。
それこそ、MapReduceみたいな処理の分散を自分で考えないといけない。

649:132人目の素数さん
12/10/05 00:20:41.39
>>626
x <- matrix(1:9, 3)
x[rep(1:3,5),]

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

651:132人目の素数さん
12/10/08 17:00:48.41
SNSの出身の人はビジネスセンスに欠ける気がする。
もしかしたら、それは旧時代的なビジネスセンスで、SNS出身の人のは新時代のものかもしれないけど。

・・・ないな。

652:132人目の素数さん
12/10/08 17:29:34.67
頭の古い人はいつでも置き去りにされる。

653:132人目の素数さん
12/10/08 17:43:54.24
統計解析全体がオカルトだというとらえ方もあるけどね。

> 活用できる社員を育成するのに金が掛かるし、企業での課題だと思う。

亀の甲羅を火にあぶる司祭たち……

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

655:132人目の素数さん
12/10/12 10:40:00.67
N行M列のXを
要素M個のリストにしたいです。

x <- matrix(1:9, 3)
x_list <- list(x[,1], x[,2], x[,3])


as.list(x)でやると要素9になってしまいます。
要素M個にしたい場合は、どうすればいいですか?

656:132人目の素数さん
12/10/12 11:49:23.96
できました!

split(x, col(x))

>知っているといつか役に立つ(?)関数達 - RjpWiki
(6) ベクトル、行列、データフレームをある性質で分割する、split(x,f)

657:132人目の素数さん
12/10/14 11:18:40.27
↓これ、apply系の関数でうまくできないですか?教えてください。

x = matrix(1:12, 3, 4)
y = c(2, 5, 10)

x[1,] + y[1]
x[2,] + y[2]
x[3,] + y[1]

658:132人目の素数さん
12/10/14 11:48:08.74
>>657
> x[1,] + y[1]
> x[2,] + y[2]
> x[3,] + y[1]

x[1:3,]+y[c(1,2,1)]

659:132人目の素数さん
12/10/15 13:56:05.47
>>657
これでもできる。xに対して縦にしたベクトルを横に走らせながら足し算するみたいな意味。
sweep(x, 1, y[c(1,2,1)], "+")

660:馬と鹿と豚さん
12/11/05 13:00:29.47
          __ノ)-'´ ̄ ̄`ー- 、_
        , '´  _. -‐'''"二ニニ=-`ヽ、
      /   /:::::; -‐''"        `ーノ
     /   /:::::/           \
     /    /::::::/          | | |  |
     |   |:::::/ /     |  | | | |  |
      |   |::/ / / |  | ||  | | ,ハ .| ,ハ|
      |   |/ / / /| ,ハノ| /|ノレ,ニ|ル' 
     |   |  | / / レ',二、レ′ ,ィイ|゙/   
.     |   \ ∠イ  ,イイ|    ,`-' |      
     |     l^,人|  ` `-'     ゝ  |        このスレは馬と鹿と豚ばかりね。
      |      ` -'\       ー'  人            
    |        /(l     __/  ヽ、          
     |       (:::::`‐-、__  |::::`、     ヒニニヽ、         
    |      / `‐-、::::::::::`‐-、::::\   /,ニニ、\            
   |      |::::::::::::::::::|` -、:::::::,ヘ ̄|'、  ヒニ二、 \
.   |      /::::::::::::::::::|::::::::\/:::O`、::\   | '、   \
   |      /:::::::::::::::::::/:::::::::::::::::::::::::::::'、::::\ノ  ヽ、  |
  |      |:::::/:::::::::/:::::::::::::::::::::::::::::::::::'、',::::'、  /:\__/‐、
  |      |/:::::::::::/::::::::::::::::::::::::::::::::::O::| '、::| く::::::::::::: ̄|
   |     /_..-'´ ̄`ー-、:::::::::::::::::::::::::::::::::::|/:/`‐'::\;;;;;;;_|
   |    |/::::::::::::::::::::::\:::::::::::::::::::::::::::::|::/::::|::::/:::::::::::/
    |   /:::::::::::::::::::::::::::::::::|:::::::::::::::::::::O::|::|::::::|:::::::::::::::/

661:132人目の素数さん
12/11/09 15:34:45.80
これって、Rで描けますか?
URLリンク(homepage2.nifty.com)

回帰直線の例である、よく教科書に載ってる図で、
「誤差が正規分布」してる様子を表したいです。

確率密度関数のプロット図を横に複数個並べたいんです。

662:132人目の素数さん
12/11/09 15:48:43.41
これです。単回帰モデルの図をRで描けますか?
URLリンク(t2.gstatic.com)

663:132人目の素数さん
12/11/09 16:13:59.17
>>661
描ける。でもちょっと頭の体操が必要かも。

>>662
同上。でもオレならPGF/Tikzで描くかな。
URLリンク(www.texample.net)

664:663
12/11/09 17:14:42.51
時間があったので、コーディングしてみた。
RjpWikiと違って図を載せられないし、半角スペースは削除されるので、
わかりにくいかも知れない。

# サンプルデータ
dat <- data.frame(x = c(rnorm(50) - 2, rnorm(50), rnorm(50) + 2),
g = c(rep("x", 50), rep("y", 50), rep("z", 50)))

# 作図
d <- tapply(dat$x, dat$g, density)
plot(as.numeric(dat$g), dat$x, xlim = c(0, 4), axes = FALSE,
xlab="", ylab="x")
lines(d[[1]]$y + 1, d[[1]]$x)
lines(d[[2]]$y + 2, d[[2]]$x)
lines(d[[3]]$y + 3, d[[3]]$x)
axis(2)
axis(1, at = 1:3, labels = LETTERS[24:26])
あとはsegments()で適当に赤の横破線を引いてくれ

665:132人目の素数さん
12/11/09 21:12:18.68
>>664 おぉー!ありがとうございます!!

666:132人目の素数さん
12/11/28 20:53:30.87
初心者ですがロジットモデルを作る際に
Lapack routine dgesv:システムは正確に特異です という意味不明なメッセージが...
変数ごとの尺度が違いすぎると発生するってことで一部に1/100したりしてみたけど
変わらず出てしまう...「そのエラー文こんな場合に出てくるでー」みたいなのあれば教えて頂けるとありがたいです.

667:132人目の素数さん
12/11/28 21:07:45.01
ロジットモデルが何か知らないけど、
エラー文でググると、

>分散共分散行列の行列式が正定値では無いため

668:132人目の素数さん
12/11/28 21:27:27.31
>>667
ありがとうございます!
分散共分散行列、正定値か...初めての単語です.
調べてみようっと

669:132人目の素数さん
12/11/28 22:30:52.44
>>666
singularって単数と思っていたが、数学では「特異」なんだな。
勉強になった。

670:132人目の素数さん
12/11/29 22:21:50.04
>>669
singular matrixって、逆行列を持たない行列。つまり
1 2
2 4
とか、そういうやつじゃないの?

Octaveでそういうのをやると

octave-3.2.4.exe> A=[[1,2];[3,4]]
A =

1 2
3 4

octave-3.2.4.exe> inv(A)
ans =

-2.00000 1.00000
1.50000 -0.50000

octave-3.2.4.exe:> A=[[1,2];[2,4]]
A =

1 2
2 4

octave-3.2.4.exe> inv(A)
warning: inverse: matrix singular to machine precision, rcond = 0
ans =

Inf Inf
Inf Inf

671:132人目の素数さん
12/11/30 15:39:16.01
sortとprintとあわせて使えませんか?

672:132人目の素数さん
12/12/01 09:59:19.11
2012/12/01 10:00~

R研究集会 「データ解析環境Rの整備と利用」2012
URLリンク(live.nicovideo.jp)

673:132人目の素数さん
12/12/03 20:43:08.44
>>671
それは質問かい?
それとも上のどこかの書き込みの対する助言かい?

674:132人目の素数さん
12/12/04 10:40:04.46
すみません、質問です

id time sex
1 13 male
2 24 female
・・・
てな感じのデータ(population)を、timeでヒストグラムを書いた時にsexで色分けしたいのですが
基本グラフィックを使った方法で何か良いのは無いでしょうか?

ちなみにggplot2だと以下のコマンドで出来ますが、基本グラフィックで書く必要があります
ggplot(population, aes(time, fill=sex))+geom_histogram()

675:132人目の素数さん
12/12/04 11:26:35.26
>>674
hist()はグループ分けができません。

> set.seed(1234)
> a <- data.frame(time = round(rnorm(100)^2*10+5), sex = sample(as.factor(c("male", "female")), 100, replace = TRUE))
と適当なサンプルで、
> max(a$time)
[1] 70
なので、0から100まで10刻みで頻度を計算して棒グラフを書けばよいのでは。

> brks <- (0:5)*4
> b <- cbind(table(findInterval(a$time[a$sex == "male"], brks)), table(findInterval(a$time[a$sex == "female"], brks)))
> barplot(t(b), beside = TRUE, names.arg = brks[as.integer(row.names(b))])

参考まで。

676:132人目の素数さん
12/12/05 08:26:29.52
>>675
なるほど、histはグループ分けが出来ないのですね・・・
アドバイスに従って棒グラフで作成してみます
回答ありがとうございました

677:132人目の素数さん
12/12/18 04:57:50.10
リストの各要素を変数に代入したいです。
今は↓こんな感じでやってるのですが、要素数が増えると面倒で、
良いやり方があれば教えてください。

m = list(1, 2, 3, 4)

a = m[[1]]
b = m[[2]]
c = m[[3]]
d = m[[4]]

678:132人目の素数さん
12/12/18 07:38:18.90
lapply(1:4, function(k) assign(letters[k], m[[k]], envir = .GlobalEnv))
うーん、あんま短くないか。

679:132人目の素数さん
12/12/18 11:05:31.28
>>677
>>678が示すように、assignを使えばよいよ。

for()を使うならこんか感じ。

## mを適当に用意
m <- lapply(1:4,function(x){sample(month.name, 3)})

v.name <- letters[1:4] #変数名を準備
for(i in 1:length(v.name)) assign(v.name[i], m[[i]])

>>678
試さないで質問して申し訳ないけど、.GlovalEnvの指定は必須?
envirの指定を省略すれば.GlovalEnvになるのかなとと思って。

680:132人目の素数さん
12/12/18 14:51:39.01
>>678-679 できました。ありがとうございます!

681:132人目の素数さん
12/12/21 23:08:27.59
データフレームがあって、A列にコード、B列にファクター値が入っております。
このデータフレームをファクター値によって5分割したいのですが、
ループを使わない簡単な方法ありますでしょうか?

現在はquantile関数とforループを併用しております。

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

682:132人目の素数さん
12/12/22 05:08:48.15
>>681
>ファクター値
どういう意味?
因子型変数が内部で保持している実体の整数型の値のこと?
例を示してくれないと、その説明ではどうしたいのか分からない。

683:132人目の素数さん
12/12/22 06:30:38.17
>>681
split(x, x$B)
ってこと?

684:681
12/12/22 09:52:42.80
>>682,>>683
ありがとうございます。

説明が悪くて申し訳ありません。
ファクター値は因子ではありません。
只の実数値の意味です。

DF
CODE DATA
"A" 1
"B" 2
"C" 3
"D" 4
"E" 5

と単純なデータフレームを考えた場合、
DATAの大きさでデータフレームを分割し5個のデータフレームにしたいのです。
現状はforループとquantile(DF$B, prob = i / 5)という関数を用いて分割している次第です。

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

685:132人目の素数さん
12/12/22 12:16:27.28
>>684
意味が全く分からないのはオレだけか?
そもそもDF$Bやiはどこから出てきたんだ。
data.frameの要素にdata.frameを入れた階層構造なのか?

もしかすると、こういうことか?
> DF <- data.frame(CODE = sample(LETTERS, 100, replace = TRUE), DATA = sample(1:5, 100, replace = TRUE))
というDFがあったとして、
> lapply(unique(DF$DATA), function(x){DF[DF$DATA == x, ]})
とすると5つのデータフレームをもつリストが出来る。

686:681
12/12/22 12:33:52.37
>>685
申し訳ありません。DF$BではなくDF$DATAです。

ご提示していただいた例ですとDATAが整数の場合には正しく分割できるのですが、
実際には整数ではなく実数値です。

例えば、
DF <- data.frame(rand)
colnames(DF) <- c("a", "b", "c")

というデータフレームを作成した場合、DF$bの大きさで任意の分位に分割したいのです。。。。

687:132人目の素数さん
12/12/22 13:38:29.27
>>686
まだ意味が分からないorz
回答する側に憶測に憶測を重ねさせる質問の仕方はどうなのか、
後出しがガシガシ出てくる質問の態度はいかがかと思うが、
丁寧な口調なので、もう1度だけ「想像」した範囲で答える。

> DF <- data.frame(a = runif(100), b = runif(100), c = runif(100))
というDFがあったとして、DF$bを任意の分位、たとえば、0.1と0.3と0.5と0.9で区切って5分割したいとする。
> i <- findInterval(DF$b, c(0.1, 0.3, 0.5, 0.9))
> lapply(unique(i), function(x){DF$b[x == i]})
これで5分割されたデータのリストが得られる。
データフレーム構造を保持したいという話なら、
> lapply(unique(i), function(x){DF[x == i, ]})

これでも、これが質問の意図と異なるなら、他の人にパス。

688:687
12/12/22 13:51:45.59
unique(i)だと区分の順番が気になるので、順番通りにするように修正
> lapply(0:max(i), function(x){DF$b[x == i]})
および
> lapply(0:max(i), function(x){DF[x == i, ]})

689:132人目の素数さん
12/12/22 20:11:43.37
改行、空白がなくて読みにくコードを
見やすく自動で整形する方法ってありますか?

他の言語だと整形ツールがあるんだけど
Rにもあるのかな

690:132人目の素数さん
12/12/22 23:19:32.32
>>689
外部ツールとしてはないけど、そういう関数もある(名前は忘れた)。

691:681
12/12/23 01:16:13.76
>>687
ありがとうございます。
分位は等分位です。
quantileで分位点を求めて、教えていただいた方法で無事いけました。

質問の仕方が悪かったようで申し訳ありませんでした。
以後気を付けたいと思います。

本当にありがとうございました

692:132人目の素数さん
12/12/23 20:34:14.28
>>689
URLリンク(github.com)

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

694:132人目の素数さん
12/12/25 01:22:28.37
各位に使用できる数字(または文字)に制限がある
n桁の整数(文字列)を生成したい。

1桁目: 1, 2
2桁目: 4, 5, 6
3桁目: 7, 8

この場合だと 2*3*2 = 12 通りの整数が作れます。
forを3重にすればできるのですが、このやり方は避けたい。
n桁になっても対応できるコードを書きたいです。

いいやり方、教えてください。

695:132人目の素数さん
12/12/25 10:23:00.30
>>694
またまた説明不足で不明瞭な質問が来た。同じ人か。

例では、3桁の12種類全ての整数(文字列)を得たいのか、
それとも1つの3桁の整数(文字列)を得たいのか、
判然としない。

後者と想定して、例示すると、
a <- list()
a[[1]] <- 1:2
a[[2]] <- 4:6
a[[3]] <- 7:8
というリストがあった場合、
> paste(sapply(a, sample, 1), collapse = "")
[1] "247"

aの要素数がn個でも(つまり、n桁でも)同じ。

696:132人目の素数さん
12/12/25 21:10:27.10
前者です。

[,1] [,2] [,3]
[1,] 1 4 7
[2,] 1 4 8
[3,] 1 5 7
[4,] 1 5 8
[5,] 1 6 7
[6,] 1 6 8
[7,] 2 4 7
[8,] 2 4 8
[9,] 2 5 7
[10,] 2 5 8
[11,] 2 6 7
[12,] 2 6 8

697:695
12/12/25 21:25:57.68
>>696
それなら、expand.grid()を再帰的に使えば良い。
入れ子にするのは面倒なので二項演算子を定義すると、
> "%+%" <- function(x, y) apply(expand.grid(x, y), 1, paste, collapse = "")
> a[[1]] %+% a[[2]] %+% a[[3]]
[1] "147" "247" "157" "257" "167" "267" "148" "248" "158" "258" "168" "268"

あとはRecall()を使って、これを一般化すれば良い。
> f696 <- function(x) { f <- function(i){ if(i > 0) return(Recall(i - 1) %+% x[[i]])
+ else return("")}
+ return(f(length(x)))
+ }
> f696(a)
[1] "147" "247" "157" "257" "167" "267" "148" "248" "158" "258" "168" "268"

次に質問するときは、最初から>>696のように書いた方が良いよ。
または、
> forを3重にすればできるのですが、
この具体的なコードを書くとか。抽象的に説明すると、解釈の余地に幅が生まれる。

698:132人目の素数さん
12/12/25 21:29:26.76
>>697 親切にありがとうございます。精進します!

699:695
12/12/25 21:31:46.70
あぁ、すまない。
n桁の整数は連結させるのではなく、
桁をばらばらにして行列にしたかったのか。
それなら話はもっと簡単だ。
pasteの処理をやめれば良い

700:132人目の素数さん
12/12/25 22:31:04.88
expand.grid(a)
(function() as.matrix((expand.grid(a)->x)[do.call(order, x),]))()

701:132人目の素数さん
12/12/26 09:37:32.22
>>700
あぁ、しまった。expand.grid()は3次元次元でも使えたのか。

>>700さんの別解。rev()を2重に使う。
as.matrix(rev(expand.grid(rev(a))))

702:令嬢
12/12/26 21:17:40.81
          __ノ)-'´ ̄ ̄`ー- 、_
        , '´  _. -‐'''"二ニニ=-`ヽ、
      /   /:::::; -‐''"        `ーノ
     /   /:::::/           \
     /    /::::::/          | | |  |
     |   |:::::/ /     |  | | | |  |
      |   |::/ / / |  | ||  | | ,ハ .| ,ハ|
      |   |/ / / /| ,ハノ| /|ノレ,ニ|ル' 
     |   |  | / / レ',二、レ′ ,ィイ|゙/   
.     |   \ ∠イ  ,イイ|    ,`-' |      
     |     l^,人|  ` `-'     ゝ  |        このスレには馬と鹿と豚さんしかいないのね。
      |      ` -'\       ー'  人            
    |        /(l     __/  ヽ、          
     |       (:::::`‐-、__  |::::`、     ヒニニヽ、         
    |      / `‐-、::::::::::`‐-、::::\   /,ニニ、\            
   |      |::::::::::::::::::|` -、:::::::,ヘ ̄|'、  ヒニ二、 \
.   |      /::::::::::::::::::|::::::::\/:::O`、::\   | '、   \
   |      /:::::::::::::::::::/:::::::::::::::::::::::::::::'、::::\ノ  ヽ、  |
  |      |:::::/:::::::::/:::::::::::::::::::::::::::::::::::'、',::::'、  /:\__/‐、
  |      |/:::::::::::/::::::::::::::::::::::::::::::::::O::| '、::| く::::::::::::: ̄|
   |     /_..-'´ ̄`ー-、:::::::::::::::::::::::::::::::::::|/:/`‐'::\;;;;;;;_|
   |    |/::::::::::::::::::::::\:::::::::::::::::::::::::::::|::/::::|::::/:::::::::::/
    |   /:::::::::::::::::::::::::::::::::|:::::::::::::::::::::O::|::|::::::|:::::::::::::::/

703:132人目の素数さん
12/12/26 23:44:03.23
>>701
revの二重使いは柔軟な思考ですね。参考になりました。

704:狢 ◆yEy4lYsULH68
12/12/27 09:03:34.27


>増田哲也こそ笑い者。
>俺が逮捕されて懲戒免職させる日本こそ沈めって、一発逆転をねらっている愚民そのもの。
>

705:132人目の素数さん
12/12/29 23:41:13.98
データフレームにあるQ01, Q02, Q03, Q04...というような連番の変数って、分析の際にまとめて指定することはできないのでしょうか。
SASでQ01-Q50などとやるようなことをしたいのですが、方法がわかりません。ご存知の方、お教えください。
50項目で主成分分析をしようなどという場合を考えると、気が遠くなります。

706:132人目の素数さん
12/12/30 07:20:47.80
URLリンク(knowledge-bank.org)

707:132人目の素数さん
12/12/30 08:39:23.19
>>705
outcome ~ .
って指定するとすべての変数が入る

708:132人目の素数さん
12/12/30 11:33:43.75
>>705
できるけど、"Q01-Q50"のような記法ではできない。
>>707が助言するようにまるごと入れることもできるし、
paste()とas.formula()をつかって長いformulaを作成することもできる。
formulaのヘルプにある例
> xnam <- paste0("x", 1:25)
> (fmla <- as.formula(paste("y ~ ", paste(xnam, collapse= "+"))))
y ~ x1 + x2 + x3 + x4 + x5 + x6 + x7 + x8 + x9 + x10 + x11 +
x12 + x13 + x14 + x15 + x16 + x17 + x18 + x19 + x20 + x21 +
x22 + x23 + x24 + x25

709:132人目の素数さん
12/12/30 12:25:38.54
>>707,708
ありがとうございます。
これで、エクセルのオートフィルで変数リスト作成してRのコンソールに貼り付ける作業から解放されます。

710:132人目の素数さん
12/12/30 14:53:50.70


711:132人目の素数さん
12/12/30 14:55:00.08
私はR言語で学習をしている初心者です。
その中で、irisデータを用いてコマンドの学習をしているのですがエラーが出てしまい先に進めなくなってしまいました。
以下にコマンドを載せますものが私の用いたものです。

library(rpart)
library(adabag)
data <- iris
ndata <- nrow(data)
#乱数指定
set.seed(101)
#学習データ(data.learn)とテストデータ(data.test)に分ける
ridx <- sample(ndata, ndata * 0.5)
data.learn <- data[ridx,]
data.test <- data[-ridx,]

#3-fold crossvalidation、弱識別器の数を10とし、学習データに対しboostingを行ったものをdata.adaCvに代入
data.adaCv <- boosting.cv(Species ~ .,data = data.learn,v=3, mfinal = 10)

#テストデータに学習データを照らし合わせる。
resultPredict <- predict(data.adaCv, newdata = data.test, type="class")

というコマンドですが「predict」を行った際に

以下にエラー UseMethod("predict") :
'predict' をクラス "character" のオブジェクトに適用できるようなメソッドがありません

というエラーが出てしまい、ネットや参考文献を見てもわからず投稿させていただきました。
もしこのエラーの解決方法がお分かりのかたがいらっしゃいましたらよろしくお願いします。

712:695
12/12/30 20:21:19.02
>>711
>以下にエラー UseMethod("predict") :
>'predict' をクラス "character" のオブジェクトに適用できるようなメソッドがありません
分かるも何も、書いてあるままだよ。
> class(data.adaCv)
[1] "list"
boosting.cv()は、predictメソッドをもつクラスを吐かず、単純にlistクラスを吐く。
それだけの話。

713:132人目の素数さん
12/12/30 20:22:36.64
>>712
名前欄にゴミが入ったorz

714:132人目の素数さん
12/12/30 23:08:32.14
>>712さん>>711です。回答ありがとうございます。
実行してみたところおっしゃたように"list"と出力されました。
ということはboosting.cvで得られた変数(data.adaCv)を用いての
predictはできないということでしょうか?
また、もしできるのであればそのコマンドと使用例を教えていただきたいです。
宜しくお願いします。

715:132人目の素数さん
12/12/31 15:27:18.84
          __ノ)-'´ ̄ ̄`ー- 、_
        , '´  _. -‐'''"二ニニ=-`ヽ、
      /   /:::::; -‐''"        `ーノ
     /   /:::::/           \
     /    /::::::/          | | |  |
     |   |:::::/ /     |  | | | |  |
      |   |::/ / / |  | ||  | | ,ハ .| ,ハ|
      |   |/ / / /| ,ハノ| /|ノレ,ニ|ル' 
     |   |  | / / レ',二、レ′ ,ィイ|゙/   
.     |   \ ∠イ  ,イイ|    ,`-' |      
     |     l^,人|  ` `-'     ゝ  |        このスレには馬と鹿と豚さんしかいないのね。
      |      ` -'\       ー'  人            
    |        /(l     __/  ヽ、          
     |       (:::::`‐-、__  |::::`、     ヒニニヽ、         
    |      / `‐-、::::::::::`‐-、::::\   /,ニニ、\            
   |      |::::::::::::::::::|` -、:::::::,ヘ ̄|'、  ヒニ二、 \
.   |      /::::::::::::::::::|::::::::\/:::O`、::\   | '、   \
   |      /:::::::::::::::::::/:::::::::::::::::::::::::::::'、::::\ノ  ヽ、  |
  |      |:::::/:::::::::/:::::::::::::::::::::::::::::::::::'、',::::'、  /:\__/‐、
  |      |/:::::::::::/::::::::::::::::::::::::::::::::::O::| '、::| く::::::::::::: ̄|
   |     /_..-'´ ̄`ー-、:::::::::::::::::::::::::::::::::::|/:/`‐'::\;;;;;;;_|
   |    |/::::::::::::::::::::::\:::::::::::::::::::::::::::::|::/::::|::::/:::::::::::/
    |   /:::::::::::::::::::::::::::::::::|:::::::::::::::::::::O::|::|::::::|:::::::::::::::/

716:132人目の素数さん
13/01/02 11:10:09.30
ビギニングス to Rって読んだけど
プログラミング言語の解説というかRをアプリケーションとしてみた解説って感じで
言語的なことはほとんど勉強になりませんでしたね。
やっぱ俺はS言語の本読むべきでしたね。

717:132人目の素数さん
13/01/04 09:40:38.25
>>716
URLリンク(www.amazon.co.jp)
URLリンク(www.amazon.co.jp)

718:132人目の素数さん
13/01/04 10:07:16.37
>>714
Rjpwikiの方に書いたからもういいと思うのだけど、念のため。
boosting.cvの中身は見た?
bootsting()とpredict.boosting()を中で使っているよね。
> boosting.cv
function (formula, data, v = 10, boos = TRUE, mfinal = 100, coeflearn = "Breiman",
control)
{
vardep <- data[, as.character(formula[[2]])]
n <- length(vardep)
if (v > n)
stop(" v should be in [2, n]")
if (v < 2)
stop(" v should be in [2, n]")
predclass <- rep("O", n)
for (i in 1:v) {
test <- v * (0:floor(n/v)) + i
test <- test[test < n + 1]
fit <- boosting(formula, data[-test, ], boos, mfinal,
coeflearn, control = control)
fit.predict <- predict.boosting(fit, data[test, ])
predclass[test] <- fit.predict$class
cat("i: ", c(i, date()), "\n")
}
tabla <- table(predclass, vardep, dnn = c("Predicted Class",
"Observed Class"))
error <- 1 - sum(predclass == vardep)/n
output <- list(class = predclass, confusion = tabla, error = error)
}
<environment: namespace:adabag>
このfit.predictが欲しいなら、自分でbooting.cv()をコピーして編集すればよい。
そうじゃないなら、何をしたいのか、もっとはっきり伝えること。

719:132人目の素数さん
13/01/05 03:55:18.11
>>716
Rノウハウ本の購入層はやりたい解析があってそこまでたどり着ければいい
って人が大多数なんじゃないかな、んでそれにあわせた内容になってると
+αを求める人は多くは無いと思う

720:132人目の素数さん
13/01/05 12:25:03.16
<スプライン補間:yからxを予測する方法>

質問です。

x<-c(1,2,3,4,5,6)
y<-c(1,4,9,7,6,8)
というデータがあったとして、
sp<-smooth.spline(x,y)
predict(sp,x=2.5)
とすると、xが2.5のときのyの値は下記のように予測できます。
$x
[1] 2.5
$y
[1] 6.923206

逆にyからxを求める方法がお分かりの方、いらっしゃいましたらお教えください。

721:132人目の素数さん
13/01/05 14:02:30.39
>>720
stats:::predict.smooth.spline.fitにざっと目を通した限りは、
できなさそうだけど。
GAMFIT (URLリンク(lib.stat.cmu.edu))の中までは読んでいない。

sp$fitの中身を使って数学的に解くか、xを細かい間隔でpredict()に与えて、
与えられたyに最も近いものを選ぶしかなさそうだが、
ちゃんとした識者に答えてもらった方がよいかも。

後者なら、
predict.y <- function(y){
x0 <- c(1, 2, 3, 4, 5, 6)
y0 <- c(1, 4, 9, 7, 6, 8)
sp <- smooth.spline(x0, y0)
i <- seq(from = min(x0), to = max(x0), by = 0.0001)
Y <- predict(sp, i)
j <- which.min((Y$y - y)^2)
return(list(y = y, x = i[j], fitted = Y$y[j]))
}
こんな感じでよいのでは。
> predict.y(2.345)
$y
[1] 2.345

$x
[1] 1.4487

$fitted
[1] 2.345004

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

723:132人目の素数さん
13/01/05 16:46:53.71
>721
ありがとうございました。参考になりました。

724:132人目の素数さん
13/01/05 20:24:09.52
          __ノ)-'´ ̄ ̄`ー- 、_
        , '´  _. -‐'''"二ニニ=-`ヽ、
      /   /:::::; -‐''"        `ーノ
     /   /:::::/           \
     /    /::::::/          | | |  |
     |   |:::::/ /     |  | | | |  |
      |   |::/ / / |  | ||  | | ,ハ .| ,ハ|
      |   |/ / / /| ,ハノ| /|ノレ,ニ|ル' 
     |   |  | / / レ',二、レ′ ,ィイ|゙/   
.     |   \ ∠イ  ,イイ|    ,`-' |      
     |     l^,人|  ` `-'     ゝ  |        このスレには馬と鹿と豚さんしかいないのね。
      |      ` -'\       ー'  人            
    |        /(l     __/  ヽ、          
     |       (:::::`‐-、__  |::::`、     ヒニニヽ、         
    |      / `‐-、::::::::::`‐-、::::\   /,ニニ、\            
   |      |::::::::::::::::::|` -、:::::::,ヘ ̄|'、  ヒニ二、 \
.   |      /::::::::::::::::::|::::::::\/:::O`、::\   | '、   \
   |      /:::::::::::::::::::/:::::::::::::::::::::::::::::'、::::\ノ  ヽ、  |
  |      |:::::/:::::::::/:::::::::::::::::::::::::::::::::::'、',::::'、  /:\__/‐、
  |      |/:::::::::::/::::::::::::::::::::::::::::::::::O::| '、::| く::::::::::::: ̄|
   |     /_..-'´ ̄`ー-、:::::::::::::::::::::::::::::::::::|/:/`‐'::\;;;;;;;_|
   |    |/::::::::::::::::::::::\:::::::::::::::::::::::::::::|::/::::|::::/:::::::::::/
    |   /:::::::::::::::::::::::::::::::::|:::::::::::::::::::::O::|::|::::::|:::::::::::::::/

725:132人目の素数さん
13/01/07 16:01:51.28
>>716
いまさらだけどビギニングス ガイド イン Rのミススペルな。

726:132人目の素数さん
13/01/07 18:48:16.16
>>725
URLリンク(www.amazon.com)
これのことか?
でも「ビギニングス ガイド イン R」じゃないぞ。

727:132人目の素数さん
13/01/09 09:49:00.54
またミスすぺるブチこみました。
正確には
ビギニングス ガイド イン R
でした。

728:132人目の素数さん
13/01/11 23:37:12.84
以下のようなデータフレームを仮定
コード 日付1 日付2 日付3 データ1 データ2 データ3
0001 201201 201103 201003 52 33 34
0002 201203 NA NA 22 NA 3
0003 201103 201001 200901 32 2 73
0004 201003 200905 200804 98 87 88
0005 NA NA NA NA NA NA
0006 201105 201102 201009 NA 32 55

日付XとデータXが対応
日付1>日付2>日付3となっている

この時、日付が201101よりも大きい日付に対応するNAでないデータを取得したい
即ち望まれる出力は以下の通り

コード 日付 データ
0001 201201 52
0002 201203 22
0003 201103 32
0004 NA NA
0005 NA NA
0006 201102 32

このように取得したい場合どのような操作をすればよいでしょうか?
実際には数千のコードがあるのでループで一行ずつ回すのはあまり現実的ではありません。

よろしくお願いします

729:132人目の素数さん
13/01/12 03:32:35.10
>>728
宿題じゃないよね?
> a <- scan(text="0001 201201 201103 201003 52 33 34
+ 0002 201203 NA NA 22 NA 3
+ 0003 201103 201001 200901 32 2 73
+ 0004 201003 200905 200804 98 87 88
+ 0005 NA NA NA NA NA NA
+ 0006 201105 201102 201009 NA 32 55")
Read 42 items
> b <- data.frame(t(matrix(a, ncol = 6)))
> names(b) <- c("コード", paste0("日付", 1:3), paste0("データ", 1:3))
で、ヒントは次の通り。
> m <- ((b[, 2:4] > 201101) & (b[, 2:4] & b[, 5:7])) * b[, 2:4]
> m[(m == 0)] <- NA
> i <- apply(m, 1, which.max)
> unlist(sapply(1:length(i), function(j){ifelse(length(i[j][[1]]) == 0, NA, (b[j, 5:7])[i[j][[1]]])}))
[1] 52 22 32 NA NA 32
> unlist(sapply(1:length(i), function(j){ifelse(length(i[j][[1]]) == 0, NA, (b[j, 2:4])[i[j][[1]]])}))
[1] 201201 201203 201103 NA NA 201102


次ページ
最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch