potisanのプログラミングメモ

プログラミング素人です。昔の自分を育ててくれたネット情報に少しでも貢献できるよう、情報を貯めていこうと思っています。Windows環境のC++やC#がメインです。

公開データ 札幌市の住民基本台帳閲覧状況 委託者

きっかけ

オリンピック意向調査の結果を見ようと札幌市のウェブサイトを検索していたら住民基本台帳の閲覧状況が見つかりました。行政機関に混じって野村総研が混じっていることが気になったので概要を確認してみました。

結論

委託者の多くは行政関係(NHK含む)でしたが、民間団体や大学も含まれていました。民間団体は「ゆうちょ財団」「野村総合研究所」「笹川スポーツ財団」「新聞通信調査会」で、これらの組織は一部札幌市民の方の住民基本台帳を閲覧していることが分かります(本人確認などの制度面は未確認です)。また、閲覧者が自身で申請した組織はいずれも行政関係または大学でした。

方法

解析は以下の手順でウェブページを半手動解析しました。処理過程の誤りが含まれる可能性があります。

  1. 札幌市のウェブページ「住民基本台帳閲覧状況の公表(更新日:2022年3月25日)」の表をコピーしてLibreOffice Calcに貼り付ける。
  2. LibreOffice CalcでCSVを出力する。名前は「source.csv」。
  3. Rスクリプト(後述)で結合されたセルの復元、改行の修正などを実施する。
  4. 出力されたデータを確認する。

Rスクリプト

library(tidyverse)

data <- read_csv("source.csv") %>%
  rename(
    "閲覧者氏名"="閲覧者氏名\n(法人の場合は代表者)",
    "閲覧事由・委託者"="閲覧事由\n(利用目的の概要)") %>%
  tidyr::fill(everything())
#委託者名の無駄な改行を削除
data <- data %>% mutate("閲覧事由・委託者"=str_replace_all(.$"閲覧事由・委託者", "\n", ""))
#閲覧自由と委託者の分離
data <- data %>% tidyr::extract("閲覧事由・委託者", c("閲覧事由", "委託者"), "^(.+)(委託者:(.+))$", remove=FALSE)

#委託者の一覧
str_c(levels(as_factor(data$委託者)), collapse=", ")

#委託者がNAの閲覧者氏名一覧
str_c(levels(as_factor(data %>% filter(is.na(委託者)) %>% pull(閲覧者氏名))), collapse=", ")

結果

委託者と委託者の存在しない閲覧者は以下の通りでした。

委託者

■行政
内閣府政策統括官(政策調整担当)付参事官
国立教育政策研究所
文化庁国語課
総務省統計局
日本銀行
内閣府経済社会総合研究所
北海道総合政策部
国土交通省観光庁
内閣府大臣官房政府広報室
厚生労働省大臣官房参事官
総務省大臣官房総括審議官
地方独立行政法人 東京都健康長寿医療センター
国立研究開発法人 国立精神・神経医療研究センター
独立行政法人 労働政策研究・研修機構
内閣官房 孤独・孤立対策担当室
消費者庁
国立研究開発法人 国立成育医療研究センター
農林水産省消費・安全局
環境省地球環境局
総務省総合通信基盤局
国土交通省不動産・建設経済局

■NHK
NHK放送文化研究所
日本放送協会
NHK営業局

■民間
一般財団法人 ゆうちょ財団
株式会社 野村総合研究所
公益財団法人 笹川スポーツ財団
公益財団法人 新聞通信調査会

■大学
国立大学法人東京大学 社会科学研究所
国立大学法人 お茶の水女子大学基幹研究院
国立大学法人 大阪大学
大阪商業大学
学校法人 同志社大学
学校法人 中央大学
学校法人立教学院 立教大学

委託者の存在しない閲覧者(個人名省略)

■行政または大学
北海道大学大学院保健科学研究院
自衛隊札幌地方協力本部南部地区隊
国土交通省北海道開発局