0.2.0がCRANにきてました。changeが入りそうな雰囲気です。使うのはまだ控えたほうがいいかも...。(#109).xがNULLだったらyの値を返す中置演算子です。(#69).attributeを取り出す中置演算子です。TRUE)みたいに結果を貯めていくことができたんですが、これをpurrrでは↓のように書けるようになります。accumulate(c)Reduce()のinit引数にあたる.init引数を指定することもできます。10右から折りたたみたいときにはaccumulate_right()、reduce_right()があるらしいです。plyr::ldply()(#127)これ便利です。dplyr::bind_rows()map_df()できるようになります。listなのに_dfだと型が違うってエラーにならないの?と思ったそこのアナタ(たぶんいない...)そうそう、purrrはちょっと型に対して甘くなりました。型が変換できるときは変換する、というポリシーになったのです。これNEWSに載せないのかな...ということで、Japan.Rでの私のつぶやきは今や嘘です。flatten().flatmap()がdeprecatedになりました。flatten()にも型を指定するバージョンの関数ができました。flatten()はunlist()的なやつです。前の挙動を覚えてないので変化がピンとこないんですが、、こういう動きです。4平らなlist()になってますね。これをvectorにまとめるには、flatten_XXXを使います。intはInteger、dblはdouble、chrはcharacter、lglはlogical、dfはdata.frameです。deprecated.invoke()はdo.call()の単純なラッパーになりました。関数ひとつを適用するだけです。これに伴って、map_call()が非推奨になりました。0.7384476関数の引数をlistじゃなくて名前付き引数でも渡せるのがdo.call()と微妙に違います。0.96395660複数の関数を適用にするには、新しいinvoke_map()を使います。0.09461299flatten_XXX()やmap_XXX()のように、型指定の関数もあります。function.他の言語とちょっと違って分かりづらかったzipX()は廃止されました。transpose()は、名前の通り、listを転置する関数です。2回転置すると元に戻ります。0.1766simplify_all()を使うと、listの各要素を可能な限りvectorにまとめてくれます。(#120).これは、はじめはHaskellとかでいうMaybeをつくろうとしてたみたいなんですが、結果とエラーとメッセージをリストとして返す、というものになりました。function>otherwise引数を指定すれば、エラーになった場合でもresultに値が入ります。これでMaybeっぽい使い方ができるかもしれません。seq_along().list_along()は、引数に指定したオブジェクトと同じ長さのlistを返します。rep_along()は、第一引数に指定したオブジェクトの長さだけ、第二引数のオブジェクトを繰り返します。is.null().スネークケースになっただけみたいです。functionは別のパッケージに移そうという計画もあるみたいです。(#132)map_n()は、pmap()にリネームされました。pmap()はmap()と同じくlglとかintとかいう型指定版があります。まとめるとこんな感じです。checkingsetNames()よりちょっと引数チェックが厳しい関数らしいです。名前を省略すると、それぞれの要素がそのまま名前になります。行指向とはどういうことかというと、dplyrみたいな感じのことができるようになるということです。size.dmap()は、dplyr::mutate_each()みたいなものです。slice_rows()はgroup_by()のラッパーみたいなものです(grouped_dfが返ってくる)。3.229286これと同じことをdmap()を使わずにやろうと思うと、たぶん↓こんな感じですがよく分かりませんでした。便利そうですが、dplyrとの使い分けが気になるところです。invoke_rows().これむずくてよく分からなかったのでパス。predictable.これはどういうことかというと、行指向の関数は、新しい列をつくって結果をそこに格納します。.to引数はそのときの名前を選びます。デフォルトだと.outという名前になります。....collate引数は、その結果をどう展開するかを指定します。"list"だと上のようにネストした状態で格納されます。"rows"だと行方向に展開されます。元のdata.frameと.outをjoinするようなイメージです。..."cols"だと列方向に展開されます。その分、列が増えます。(#123).これは、map()などなどpurrrの関数の中でラムダ関数をつくるのに使われている関数です。具体的には、以下のような挙動をします。z[["x"]][["y"]].引数が関数なら、そのまま関数が返ってきます。引数がformulaなら、.と.xを第一引数、.yを第二引数とする関数に変換します。引数がcharacterかnumericなら、ベクトルからそのインデックスの要素を取り出す関数に変換します。as_function(1)は、1つ目の要素を取り出す関数です。(#118).これまでは単純にlapply()とmapply()の単なるラッパーでしたが、独自にCで実装したものを使うようになりました。これによってパフォーマンス面での向上が見込まれ、るかと思いきやそこはあんまり変わらなくて、出力をもっとうまくコントロールできるようになるとかなんとか。予想通り?、dplyrの領分にも浸食し出したpurrr。これからも目が離せません。下手をするとdplyrをぶっ壊しかねないのでは...と危惧しています。Communityで質問してみたところ、...2016-11-26ウェブAPIから返ってくるネストしまくったJSONをpurrrの力でdata.frameに変換する某ウェブサービスのデータをAPI経由でRから取ってくるkntnrとい...2016-04-11dplyrで複数カラムを追加したいと思ったときはpurrrでslice_rows+by_slicer-wakalangでそんな話があった時のメモ。Actionsでpkgdownサイトをビルドする月別アーカイブはてなブログをはじめよう!yutannihilationさんは、はてなブログを使っています。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。