dplyr

またおまえかtibble

従来の集計処理をdplyrに置き換えていく中でこういうエラーが出た。 Error in function_list[[k]](value) : (list) object cannot be coerced to type 'double' これまでは問題なく集計処理できていたのにdplyrを使った途端このエラーである。 問題を突き止…

10分単位でgroup_byして集計したい

分を抽出して10分単位でfloorして、1時間単位でfloorしたデータと足し合わせる。 たまにしかやらないので忘れてしまう。 というか以下の記事でも言及しているようにxtsパッケージとか使えばもっとスマートに書けるんじゃないのか。 http://notchained.hatena…

NSE(Non-Standard Evaluation)について

NSEについて前回の記事で叫んだところ、kohskeさんが解説記事を書いてくれた。素敵! http://qiita.com/kohske/items/7dbef6ae3ff34c093ce4 NSEの説明についてはこの記事で十分なのだが、なぜ今さらNSEなんてものをHadleyが持ち出してきたのかについて彼の資…

dplyrのなんたら_eachを効率的に使う

正直誰でも知ってる関数だし他にも解説している記事はあるので今さらだが、dplyrパッケージのなんたら_each関数の使い方をまとめる。 なんたら_eachを知ることでコピペを連発していたうちの同僚は感動のあまり涙の海に沈んだ。 たとえば以下のように一つの列…

dplyr中の関数において変数をcharacter stringで指定しないこと

以下より。 http://stackoverflow.com/questions/25546759/randomness-in-dplyr/25548505?noredirect=1#comment39903225_25548505 たとえばn_distinct関数の対象を文字列で指定すると不安定な結果が返ってくる。 library(dplyr) > summarise(mtcars, n_disti…

d_plyをdplyrを使って再現する

plyrパッケージのd_ply、みなさん使ったことありますか? たとえばこういう風にグルーピングした結果を出力したいときなどに使います。 d_ply(iris, .(Species), .fun=function(x) write.csv(x,file = sprintf("%s.csv", x$Species[1], sep = ""))) で、これ…

:=でコードをシンプルにする

下記のようにグループ化して求めた統計量を元のデータに付加することは多々あると思います。 library(dplyr) iris <- iris %>% group_by(Species) %>% mutate(Sp.mean=mean(Sepal.Length)) しかし、ここでirisを2回も書くのは冗長なのでシンプルにしたい。 …

dplyrでdata.tableがdata.frameに変換されてしまう件

こういう話がある。datatableどうしをinner_joinしたらdataframeになって爆死したんだけど, なんでかなこれ— はたむ (@gg_hatano) 2014, 6月 23確かめてみる。 dt1 <- data.table(A = letters[1:10], X = 1:10, key = "A") dt2 <- data.table(A = letters[5:…

dplyrのバージョンが0.2に上がって

dplyrのバージョンが2.0に上がって少し便利になりました。 詳しくは以下のリリースノートをご覧ください。 https://github.com/hadley/dplyr/releases/tag/v0.2.0 以下の3点が大きな変更点。 %.%が%>%に変わった do()が生まれ変わった 新しい便利関数が加わ…

dplyrとPostgreSQLではまったポイント

dplyrをPostgreSQLから叩いてはまったポイントをつらつらと書きます。 カラム名(フィールド)を大文字で書かない DB扱う人にとっては当然の話だとは思いますがカラム名は小文字でないとエラーが出る場合があります。 大文字使っている時はエスケープしてお…

dplyrとplyrは一緒に使ってはいけない

dplyrの挙動がおかしい時はplyrを一緒にロードしていないか確認しましょう。 たとえば以下のようにおかしくなっている場合があります。 > library(dplyr) 次のパッケージを付け加えます: ‘dplyr’ 以下のオブジェクトはマスクされています (from ‘package:sta…

思い出して下さい、[は関数です

%.%思考になると少しでも多く%.%を使いたくなります。 たとえばirisデータにおいてSpecies以外の列ごとの和を求める際、通常ならこうやると思います。 iris[,-5] %.% colSums() しかしこれでは1 Hitにしかなりません。 私ならこうやります。 iris %.% "["(,-…

%.%を耳で感じるパッケージpingsを作りました

dplyrヘビーユーザーの皆さんはきっと%.%を多用されていることかと思います。 気持ちよいですよね%.%。 そんな気持ち良さを耳で感じて皆さんの%.%ライフを加速させるパッケージを作りました。 pings関数について pingsパッケージの内容はpings関数のみです。…

dplyrとデータベース

dplyrはデータベースにつないでそのままfilterやらsummariseでいじくりまわすということができる。 その紹介記事を書いた。 http://rpubs.com/dichika/dplyr_db

dplyrの簡単な紹介記事

vignette読めばいいのだが時間のない日本人のためにvignetteを抄訳したような記事を書いた。 http://rpubs.com/dichika/dplyr_intro enjoy!!!

rbind_allにおけるfactorの扱いについて

rbind_allをfactorを含むデータフレームに使うと挙動が安定しないとのコメントをいただいたのでさらっと見てみました。(musimasamiさんありがとうございます) ラベル名が異なる場合 警告付きでcharacterで返ってきます。 rbindの場合、レベルを追加してfac…

dplyrの使用例をまとめる

別に私dplyrのエバンジェリストでもなんでもないんですが、dplyrを使っていく上で使用例をいくつか調べたので共有します。 まだそんなにたくさんないので英語か日本語かというだけで分けています。 dplyrの使い方紹介(vignette)はこちら。 http://cran.rst…

%.%演算子の中身

こんな話があります。 http://stackoverflow.com/questions/21477040/reshape2-multiple-results-of-aggregation-function/21485258?stw=2#21485258 %.%でつなげていけるのはdplyrの関数だけかと思い込んでいたのだがそんなことはない。 helpのdescriptionに…

rbind_allめちゃ速い

(rbind_allはdeprecatedとなっており、代わりに現在はbind_rowsが推奨されています)データフレームを縦に結合していく時、皆さんdo.call("rbind", list(data1, data2, data3))みたいなことやっていると思います。 しかしdplyrにC++で書き直されたrbind_all…

dplyrのsummarise関係のバグ

maniputatrのメーリングリストより。 https://groups.google.com/forum/#!topic/manipulatr/-z28V8UVU9s 下記コードでNaNが出る。 library(dplyr) data(diamonds, package = "ggplot2") diamonds %.% group_by(cut) %.% summarise(all=mean(price), E=mean(p…

dplyrがCRANにアップされていた

CRANアップ記念ということで作者のHadleyが所属するRStudioのブログにdplyrについて記事が上がっている。 http://blog.rstudio.org/2014/01/17/introducing-dplyr/気になったのは%.%演算子。 シェルでいうところのパイプラインみたいなものか。%.%で処理をつ…

dplyrは列数に影響を受けない

plyrとdoByをきちんと検証した素晴らしい記事がある。 http://gg-hogehoge.hatenablog.com/entry/2014/01/04/143733 dplyrがインストールできないとのことなので、dplyrも加えて検証した。 結果 dplyrが圧倒的だった。 本当はplyrは列数が増えるとなぜ遅くな…

dplyrのjoinがmergeに比べて3倍速い

私、集計はplyrでやろうぜええええええええええとか言ってる割に、データマージはmerge()でやっておりました。 もうそろそろ冬休み終わるし沢山の集計作業が待っているが俺は早く帰りたい。 ということでdplyrの*_join()のうち、inner_join()を試してみまし…

dplyr最強伝説

plyrは遅いと思っておりましたし実際そのような検証結果も2013のR Advent calendarで出ておりました。 まあ文法がggplot2と同じような感じなのでggplot脳の自分としてはまあ多少遅くても新しい文法覚えるよりましかとか思っていたわけです。ただ、新しい文法…

dplyrパッケージ便利いいいいいいいいいいいいいい

こんな資料があります。 「plyrパッケージで君も前処理スタ☆」改め「plyrパッケージ徹底入門」 http://www.slideshare.net/teramonagi/tokyo-r30-20130420plyrパッケージは非常に便利なのですが、とても大きなデータに対しては遅い。 ddplyしたけど遅いッ遅…