注目の投稿

【kepler.gl】コロナ対策による人流の変化も地図上に可視化(各種メディアで報道)

kepler.glのサイト画面 kepler.glを使ってコロナ対策の効果を分析したところ、テレビ、新聞、ネットのメディアから問い合わせや報道依頼が殺到。今も、土日返上で都内や全国の人流変化を分析しています。この記事では人流変化の可視化に便利なkepler.glにつ...

2016年11月24日木曜日

2016年11月16日水曜日

【トレジャーデータ】データベース名が数字の場合(sql:presto)

データベース名の先頭が数字の場合通常ならエラーとなるが、""でDB名を囲むことでエラー回避できる。



      FROM
        "1_db". tb

2016年11月8日火曜日

【R】data.tableとdplyrの内容が良くまとまっているページ

Rで大規模データの処理をするには、data.tableとdplyrが必須です。
下記のページは、その内容が簡潔にまとめられていて非常に参考になります。

 大規模データの高速処理 ーdata.table、dplyrー
http://kohske.github.io/ESTRELA/201410/index.html

特に、他のサイトではあまり紹介されていないキーの設定の説明があるところ良いです。

setkey(dt, key)

d: データテーブル
key: キーとなるカラム名

これだけでデータ集計が高速に!

2016年10月31日月曜日

【R】行番号を取得する(row(df))

以下でOK

df.data$行番号を入れたいカラム名 <- row(df.data)

ちなみに、

nrow()

とすると最大行数が入る。

2016年10月28日金曜日

【トレジャーデータ】先頭のバックスペース(\b)を除去(regexp_replace)

TDに溜まっているデータから記事別UUを集計しgs(google spreadsheet)にデータをアップロードしたところ下記のエラーが出てしまった。

 An invalid XML character (Unicode: 0x8) was found in the value of attribute "inputValue" and element is "gs:cell"

 結論から言うと、記事タイトルの先頭にバックスペースが紛れ込んでたレコードが一部あり、これが原因でエラーが出ていた(原因解明にTDのサポートが大変参考になった!)。

修正部分抜粋↓

) SELECT
--  yesterday.title, --記事タイトルをそのままセレクトすると\bが紛れているのでエラー
--  ltrim(yesterday.title), --空白除去。当初は先頭文字の空白が原因かと考えたが違っていた
  regexp_replace(yesterday.title, '[\b]') as title, --これで成功


メモ
  • regexp_replace(column, '[\b]') --バックスペースを除去
  • regexp_like(column,'^[\b]') --バックスペースがあるレコードを特定


本件で参考になるサイト


てか、そもそも何で記事タイトルにバックスペースが紛れ込んでいるんだろう??


2016年10月27日木曜日

【トレジャーデータ】記事別DAU階級推移(SQL:case文を使う)

 閲覧記事のDAUの構造的変化を把握したいときは、各記事をDAU階級*に分けてその変化を見る方法があります。

*DAU階級例
階級UU数(dau)
A10001~
B5001~10000
C1001~5000
D101~1000
E1~100


階級分けはkmeans等を使う場合が多いですが、複数のPJやメディア等を横串で評価する場合は定性評価で統一基準を設けても良いです(と思っています)。

実際には、下記のような集計をおこない階級別の推移を見て、施策の効果や現状の課題等を把握します。

date_timeA_dauB_dauC_dauD_dauE_dau
2016-10-20?????
2016-10-21?????
2016-10-22?????
2016-10-23?????
2016-10-24?????
2016-10-25?????
2016-10-26?????

具体的なSQLの例は下記となります。

データ名:data(すでに各記事のdauを集計済)
データ構造:date_time(yyyy-MM-dd), page_name(記事の名前), dau
補足:集計は度数分布表やヒストグラム作成に用いるcase文を利用

SELECT
date_time,
SUM(CASE
    WHEN dau >= 10001 THEN dau END) AS A_dau,
SUM(CASE
    WHEN dau >= 5001 AND dau < 10000 THEN dau END) AS B_dau,
SUM(CASE
    WHEN dau >= 1001 AND dau < 5000 THEN dau END) AS C_dau,
SUM(CASE
    WHEN dau >= 101 AND dau < 1000 THEN dau END) AS D_dau,
SUM(CASE
    WHEN dau >= 1 AND dau < 100 THEN dau END) AS E_dau
FROM
data
WHERE
--自動集計するためのコード
TD_TIME_RANGE(TD_TIME_PARSE(date_time),
              TD_TIME_ADD(TD_SCHEDULED_TIME(),
                          '-7d'), --7日分のデータを集計
              TD_SCHEDULED_TIME(),
              'jst')
GROUP BY
date_time
ORDER BY
date_time

今回は各記事のDAUを集計していますが、
THEN dau END → THEN 1 else 0 END
とすることで階級別の記事数を集計できます。

【スカイツリー】遠くに見えるスカイツリー

遠くに見えるトンガリがスカイツリー。



定点観測したらおもしろそう

でも、機材揃えるの面倒そうだからやめておこう。。