noteppei

スモールデータを分析するお仕事をしています。テキトーな事例を元に実践しながらRを覚えて…

noteppei

スモールデータを分析するお仕事をしています。テキトーな事例を元に実践しながらRを覚えていく、自分用のメモです。

記事一覧

pandasでのデータピボット.Py

背 背景:R→Pythonへのコード変換 Rで作ったコードをPythonで動かす必要があって、DataFrameの操作周りを確認中。  DataFrameと言えば、Rならtidyverse、Pythonならpan…

noteppei
1年前

appendからconcatへの移行.Py

appendよ死んでしまうとはなさけない データフレームに行を追加するときに便利なappendちゃんがお亡くなりになりました。後釜はconcatちゃんでよろしくねって言われてます…

noteppei
1年前
1

複数の値をひとつのセルにまとめる(マルチアンサー形式).R

 蛇蝎のごとく嫌って分解し続けてきたマルチアンサーを、今度は作ってみよう。  基本はlong→wideへの変換だが、wideにされてできた列をuniteして一つのカラムに納める。…

noteppei
2年前
1

かっこが1or2か所に含まれる文字列からの抽出.R

やりたいこと hoge (fuga);hoge (piyo) (fuga)  特定の列に上記2パターンで記述された値が混在しているので、それを次のような形に分割して別の列に格納したい hoge, …

noteppei
2年前

アクセス数の変化は? というわけで、ダッシュボードからアクセス数を拾ってみると、翌週(12/末)あたりから、各記事のアクセス数が約4割減となった。それなりに効果があ…

noteppei
2年前

妙なサイトからのリンク、と著作権

note記事の無断販売? noteには有料で記事を販売する機能があるのだけれど、世の中には無料記事に対して勝手に(そのサイト独自の)有料リンクを張って、無断販売をしてい…

noteppei
2年前

(追記あり:そんなことなかった)group_by() %>% count()の結果は地味にgroup_by()されたまま

2021-12-20追記 よく考えたら、group_by(hoge) %>% count() なんてしなくても、count(hoge) でいいじゃーん。(俺の頭が)悪かった。 タイトルそのままの話 データフ…

noteppei
2年前

特許のネットワーク分析(3).R

要約・str_splitでマルチアンサーの分解結果をリストに詰める ・mapでリストを処理 ・最後はrlist::list.stackで1つのデータフレームに 前回のお話改めて方針を立て直す …

noteppei
2年前

separate() / separate_rows()

要約・文字列をセパレータで分けるtidyr::separateには2種類 ・separate()はstringr::str_split()と同様に列方向(横)に展開 ・separate_rows()は行方向(縦)に展開、他…

noteppei
2年前

近況というかモンハンの話

要約・モンハンはいいぞ 最近書いてない理由  モンハンライズが始まったから。以上。  いや、他にもnoteのペースが落ちてる人たちがいるはずだ。noteが本業の一部ではな…

noteppei
3年前

特許のネットワーク分析(2).R

要約・方針は大きく2つある ・隣接行列よりは個別の要素間対応で書いた方が筋は良さそう 前回対応関係を作る、その方針 点と点との間のつながりを表すネットワークグラフ…

noteppei
3年前
1

特許のネットワーク分析(1).R

要約・特許分析でのネットワーク分析は、主に共願人や発明者の解析 ・テキストの共起の解析もあるけど後回し 特許のネットワーク分析 要素間がどのように繋がっているの…

noteppei
3年前

抽出による文字列分離(3.5)_map補遺.R

要約・map()はあくまでもリストまたはベクタの各要素ごとに適用 ・map()内のベクタまたはマトリクスの各行に適用するには一工夫要る ・原理の理解って大事よね map()の挙…

noteppei
3年前

抽出による文字列分離(3)_書式をそろえる.R

要約・str_match_all()では、ベクタとマトリックスが混在するリストを出力 ・文字列の桁揃えはstr_pad() ・各文字列操作はまとめて関数として定義 ・map()でリスト内の各要…

noteppei
3年前

抽出による文字列分離(2)_書式の理解.R

要約・抽出するには書式を理解 ・stringr::str_match_all()で揃えたい部分を抽出 ・str_pad()で桁をそろえる ・リストへの関数適用なのでapply系かfor文か FIの数字部分の…

noteppei
3年前
3

抽出による文字列分離(1.5).R

要約・str_extract_all()とstr_subset()の挙動の違い ・「特定の文字列を抽出」or「特定の文字列を含む要素を抽出」 別の抽出方法:str_subset() ちょっと本題からは逸れ…

noteppei
3年前
2

pandasでのデータピボット.Py



背景:R→Pythonへのコード変換 Rで作ったコードをPythonで動かす必要があって、DataFrameの操作周りを確認中。
 DataFrameと言えば、Rならtidyverse、Pythonならpandasという認識。しっかし似ているようで似ていないのがこの2つ。Pythonはオブジェクト指向だからねHAHAHA、と言われればまあおっしゃる通りですね。直感的じゃないからやりにくいんだ

もっとみる

appendからconcatへの移行.Py

appendよ死んでしまうとはなさけない データフレームに行を追加するときに便利なappendちゃんがお亡くなりになりました。後釜はconcatちゃんでよろしくねって言われてます。
 でもconcatちゃんに追加行となる値セットを渡すと、appendちゃんと違う挙動をするんですよね。例えば3値からなるシリーズをappendちゃんなら1行3列にして追加してくれるんですけど、concatちゃんは3行1

もっとみる

複数の値をひとつのセルにまとめる(マルチアンサー形式).R

 蛇蝎のごとく嫌って分解し続けてきたマルチアンサーを、今度は作ってみよう。
 基本はlong→wideへの変換だが、wideにされてできた列をuniteして一つのカラムに納める。つまりseparate_rowsの逆変換だ。
 結論としては下のようになる。

>test COL1 CAT1 A a2 B b13 B b24 C c15 C c26 C

もっとみる

かっこが1or2か所に含まれる文字列からの抽出.R

やりたいこと

hoge (fuga);hoge (piyo) (fuga)

 特定の列に上記2パターンで記述された値が混在しているので、それを次のような形に分割して別の列に格納したい

hoge, fugahoge (piyo), fuga

背景

 例としては、歴代内閣総理大臣の一覧に「菅義偉 (第99代) (令和2年9月16日~令和3年10月4日)」と「安倍晋三 (平成29年11月1日~

もっとみる

アクセス数の変化は? というわけで、ダッシュボードからアクセス数を拾ってみると、翌週(12/末)あたりから、各記事のアクセス数が約4割減となった。それなりに効果があったようなないような。

無料に戻しました おそらくは、リンクしているサイトのうちアクティブなものでは、何かしらの対応が行われた……んだったらいいなあ。
 とりあえず有料をやめてみて、数字が元に戻るかどうかを観察してみようかな。

以上

もっとみる

妙なサイトからのリンク、と著作権

note記事の無断販売? noteには有料で記事を販売する機能があるのだけれど、世の中には無料記事に対して勝手に(そのサイト独自の)有料リンクを張って、無断販売をしているていのサイトがあるようだ。もちろん、販売サイトを装ったフィッシングサイトの可能性もある。
 気づいたのは、久々にダッシュボードを見たら特定2記事だけ継続的にViewがあったからなのだけれど……まあそれはそれでちょっと悲しい。

もっとみる

(追記あり:そんなことなかった)group_by() %>% count()の結果は地味にgroup_by()されたまま

2021-12-20追記 よく考えたら、group_by(hoge) %>% count() なんてしなくても、count(hoge) でいいじゃーん。(俺の頭が)悪かった。

タイトルそのままの話 データフレームをgroup_by(hoge) %>% count() するとhoge列の値ごとにそれぞれ何行あるかカウントしてくれるというのはよく使う。
 たまたまカウント列(デフォでn)をcumsu

もっとみる

特許のネットワーク分析(3).R

要約・str_splitでマルチアンサーの分解結果をリストに詰める
・mapでリストを処理
・最後はrlist::list.stackで1つのデータフレームに

前回のお話改めて方針を立て直す 半年も放置していると、さすがに忘れるのである。
 無向グラフ用に、隣接行列またはエッジリスト(n行2列)を作るのが当面の目標になる。
 エッジリストに入れるノードは、マルチアンサーを分解した各要素であるし、

もっとみる

separate() / separate_rows()

要約・文字列をセパレータで分けるtidyr::separateには2種類
・separate()はstringr::str_split()と同様に列方向(横)に展開
・separate_rows()は行方向(縦)に展開、他の列は値が複製される

以前の記事separateは2種類あった ご存じtidyr::separate()は、例えばCSVのようにセパレータで複数の要素がつながった1つの文字列を

もっとみる

近況というかモンハンの話

要約・モンハンはいいぞ

最近書いてない理由
 モンハンライズが始まったから。以上。
 いや、他にもnoteのペースが落ちてる人たちがいるはずだ。noteが本業の一部ではない人たちの中には。まちがいなくハンターだ。みんなで狩れば怖くない。すみません。
 それにしても、子供を寝かしつけてからになると21:30~とかしかできないから進度が遅いのなんの(HR100は超えましたが)。

モンハンライズにつ

もっとみる

特許のネットワーク分析(2).R

要約・方針は大きく2つある
・隣接行列よりは個別の要素間対応で書いた方が筋は良さそう

前回対応関係を作る、その方針 点と点との間のつながりを表すネットワークグラフを描くためには、点と点がどのように繋がっているか、その対応関係を示すデータが必要だ。まずは作り方の方針を検討しよう。

 1つ目は隣接行列と呼ばれるもの。
 点はノード、つながりがエッジで、全ノードを縦横に並べた正方行列を作り、i行j列

もっとみる

特許のネットワーク分析(1).R

要約・特許分析でのネットワーク分析は、主に共願人や発明者の解析
・テキストの共起の解析もあるけど後回し

特許のネットワーク分析 要素間がどのように繋がっているのかを分析するのが、ネットワーク分析だ。と言い切ってしまったが、学問的にはよく知らない()
 それはさておき、特許を分析するときに、要素間のつながりを分析したいということはたまにある。
 例えば、特許文献のテキストデータから、単語(=要素)

もっとみる

抽出による文字列分離(3.5)_map補遺.R

要約・map()はあくまでもリストまたはベクタの各要素ごとに適用
・map()内のベクタまたはマトリクスの各行に適用するには一工夫要る
・原理の理解って大事よね

map()の挙動って本当にこれで良かったっけ? そういえば、map()ではリスト内の各要素に関数を適用できるのだけど、さらに各要素内のマトリクスの各行に対して適用するようなものだったんだっけ?
 前回のは各行ごとに処理できているように見

もっとみる

抽出による文字列分離(3)_書式をそろえる.R

要約・str_match_all()では、ベクタとマトリックスが混在するリストを出力
・文字列の桁揃えはstr_pad()
・各文字列操作はまとめて関数として定義
・map()でリスト内の各要素に適用

前回記事まずはFIをグループ化抽出(str_match_all()) というわけで、まずはグループ化しながらFIを抽出してみる。

> df$FI %>% head(2) %>%+ str

もっとみる

抽出による文字列分離(2)_書式の理解.R

要約・抽出するには書式を理解
・stringr::str_match_all()で揃えたい部分を抽出
・str_pad()で桁をそろえる
・リストへの関数適用なのでapply系かfor文か

FIの数字部分の桁数は結構異なる 前の記事の繰り返しになるのだけれども、FIという分類コードは、実はデータベースごとで異なる書式にされていることが多い。例えば検索に使う際にも入力書式が違っているので、極端な話

もっとみる

抽出による文字列分離(1.5).R

要約・str_extract_all()とstr_subset()の挙動の違い
・「特定の文字列を抽出」or「特定の文字列を含む要素を抽出」

別の抽出方法:str_subset() ちょっと本題からは逸れるが、stringr::にはstr_subset()という関数があって、これも特定の文字列を抽出してくれる関数だ。
 一方、str_extract_all()も特定の文字列を抽出してくれる関数だ

もっとみる