平成27年国勢調査
速報集計
抽出速報集計
表番号:01410
国勢調査 世帯数 家族類型
表題:世帯の家族類型(22区分),6歳未満・18歳未満・65歳以上・75歳以上代世帯-特掲)
家族類型_2015:
総数(家族類型)
親族のみの世帯
核家族世帯
夫婦のみの世帯
夫婦と子供から成る世帯
男親と子供から成る世帯
女親と子供から成る世帯
核家族以外の世帯
夫婦と両親から成る世帯
夫婦と両親から成る世帯 夫婦と夫の親から成る世帯
夫婦,子供と両親から成る世帯
夫婦,子供とひとり親から成る世帯
夫婦と他の親族(親,子供を含まない)から成る世帯
夫婦,子供と他の親族(親を含まない)から成る世帯
夫婦,親と他の親族(子供を含まない)から成る世帯
夫婦,子供,親と他の親族から成る世帯
兄弟姉妹のみから成る世帯
他に分類されない世帯
非親族を含む世帯
単独世帯
世帯の家族類型「不詳」
表章項目:
一般世帯数
一般世帯人員
6歳未満世帯員のいる一般世帯数
6歳未満世帯員のいる一般世帯人員
6歳未満世帯人員
18歳未満世帯員のいる一般世帯数
18歳未満世帯員のいる一般世帯人員
18歳未満世帯人員
65歳以上世帯員のいる一般世帯数
65歳以上世帯員のいる一般世帯人員
library(readr)
家族類型 <- read_csv("./data/家族類型.csv")
family_type <- 家族類型
dat <- as.data.frame(family_type)
colnames(dat)
## [1] "tab_code" "表章項目" "cat01_code" "家族類型_2015"
## [5] "area_code" "地域(2015)" "time_code" "時間軸(年次)"
## [9] "unit" "value"
# "tab_code" "表章項目" "cat01_code" "家族類型_2015" "area_code" "地域(2015)" "time_code" "時間軸(年次)" "unit" "value"
library(stringr)
dat$time_code <- as.numeric(str_sub(formatC(dat$time_code,format="d"),1,4))
dat0 <- dat
library(dplyr)
dat_ <- dat %>%
filter(tab_code=="6" & (cat01_code=="0" | cat01_code=="10" | cat01_code =="20" | cat01_code=="70" | cat01_code =="300" | cat01_code =="310"| cat01_code =="330") & area_code == "0" & unit == "世帯") %>%
select(-tab_code,-"表章項目",-area_code,-"地域(2015)",-time_code,-"時間軸(年次)",-unit)
colnames(dat_)[1] <- "family_type"
dat_$family_type <- as.factor(dat_$family_type)
str(dat_$family_type)
## Factor w/ 7 levels "0","10","20",..: 1 2 3 4 5 6 7
library(forcats)
library(ggplot2)
ggplot(dat_,aes(x=family_type,y=value))+
geom_col(fill="blue")+
theme_minimal(base_family = "HiraKakuProN-W3")
library(dplyr)
dat_ <- dat %>%
filter(tab_code=="6" & (cat01_code=="0" | cat01_code=="10" | cat01_code =="20" | cat01_code=="70" | cat01_code =="300" | cat01_code =="310"| cat01_code =="330") & area_code == "0" & unit == "世帯") %>%
select(-tab_code,-"表章項目",-area_code,-"地域(2015)",-time_code,-"時間軸(年次)",-unit)
colnames(dat_)[1] <- "family_type" # 項目名cat01_codeをfamily_typeに変更
dat_$family_type <- as.factor(dat_$family_type)
library(forcats)
dat_$family_type <- factor(c("総数","親族のみの世帯","核家族世帯","核家族以外の世帯","非親族を含む世帯","単独世帯","他に分類されない世帯"),levels = c("総数","親族のみの世帯","核家族世帯","核家族以外の世帯","非親族を含む世帯","単独世帯","他に分類されない世帯"))
library(ggplot2)
ggplot(dat_,aes(x=family_type,y=value))+
geom_col(fill="blue")+
labs(title="世帯の家族類型(一般世帯)",subtitle="全国",x="家族類型",y="世帯数",caption = "2015年国勢調査")+
theme_minimal(base_family = "HiraKakuProN-W3")+
coord_flip()
knitr::kable(dat_)
| family_type | 家族類型_2015 | value |
|---|---|---|
| 総数 | 総数(家族類型) | 51877000 |
| 親族のみの世帯 | 親族のみの世帯 | 34428500 |
| 核家族世帯 | 核家族世帯 | 29663400 |
| 核家族以外の世帯 | 核家族以外の世帯 | 4765100 |
| 非親族を含む世帯 | 非親族を含む世帯 | 457000 |
| 単独世帯 | 単独世帯 | 16845000 |
| 他に分類されない世帯 | 世帯の家族類型「不詳」 | 146500 |
dat_$value <- as.numeric(dat_$value) # 追加
# 総数で割りパーセント
ft <- (dat_$value/51877000*100)[3:7]
# 類型の項目と各類型のパーセントからデータフレームを作成
ftm <- data.frame(x=dat_$family_type[3:7],y=ft)
knitr::kable(ftm)
| x | y |
|---|---|
| 核家族世帯 | 57.1802533 |
| 核家族以外の世帯 | 9.1853808 |
| 非親族を含む世帯 | 0.8809299 |
| 単独世帯 | 32.4710373 |
| 他に分類されない世帯 | 0.2823988 |
library(ggplot2)
ggplot(ftm,aes(x=x,y=y))+
geom_col(fill="lightblue",colour="black")+
xlab(NULL)+
ylab("パーセント")+
theme_minimal(base_family = "HiraKakuProN-W3")
ggplot(ftm,aes(x=x,y=y,fill=x))+
geom_col()+
labs(title="世帯の家族類型(一般世帯)",subtitle="全国",x="家族類型",y="パーセント",caption = "2015年国勢調査",fill="凡例")+
theme_minimal(base_family = "HiraKakuProN-W3")+
coord_flip()
par(family="HiraKakuProN-W3")
barplot(ftm[,2],horiz = T,beside=T,col = "lightblue",names=letters[1:5],xlab = "パーセント",ylab = "家族類型",main = "世帯の家族類型(一般世帯)、全国",sub = "")
par(new=T)
legend(38,7,"a:核家族世帯\nb:核家族以外の世帯\nc:非親族を含む世帯\nd::単独世帯\ne:他に分類されない世帯",text.col="blue",bty = "n",title = "凡例",cex=0.9)
#title(sub = "2015年国勢調査")
mtext("2015年国勢調査",side = 1,line = 3,at=53,cex=0.8)
<div style="text-align: left;">
<image src="ss2020-10-22 12.12.11.png"
width="600" height="400">
</div>
https://dashboard.e-stat.go.jp/timeSeries
library(readr)
TimeSeries核家族世帯 <- read_csv("./data/TimeSeries核家族世帯.csv")
TimeSeries核家族以外の世帯 <- read_csv("./data/TimeSeries核家族以外の世帯.csv")
TimeSeries非親族を含む世帯 <- read_csv("./data/TimeSeries非親族を含む世帯.csv")
TimeSeries単独世帯 <- read_csv("./data/TimeSeries単独世帯.csv")
I <- TimeSeries核家族世帯[,-c(2,3,5)]
II <- TimeSeries核家族以外の世帯[,-c(2,3,5)]
B <- TimeSeries非親族を含む世帯[,-c(2,3,5)]
C <- TimeSeries単独世帯[,-c(2,3,5)]
dat <- data.frame(year=I[,1], I=I[,2],II=II[,2],B=B[,2],C=C[,2])
colnames(dat) <- c("時点","a 核家族世帯","b 核家族以外の世帯",
"c 非親族を含む世帯",
"d 単独世帯")
dat0 <- dat
library(tidyr)
dat_ <- gather(dat,"key","value",-時点)
以下のようにgroup=keyとしないと折線が正しく表示されない。
aes(x=時点,y=value,col=key,group=key)
library(ggplot2)
ggplot(dat_,aes(x=時点,y=value,col=key,group=key))+
geom_line(size=2.5)+
labs(title = "世帯の家族類型",subtitle = "1995-2015",y="世帯数",caption = "https://dashboard.e-stat.go.jp/timeSeries",col="凡例")+
theme_minimal(base_family = "HiraKakuProN-W3")
## Warning: Using `size` aesthetic for lines was deprecated in ggplot2 3.4.0.
## ℹ Please use `linewidth` instead.
## This warning is displayed once every 8 hours.
## Call `lifecycle::last_lifecycle_warnings()` to see where this warning was
## generated.
library(ggplot2)
ggplot(dat_,aes(x=時点,y=value,col=key))+
geom_point(size=2.5)+
labs(title = "世帯の家族類型",subtitle = "1995-2015",y="世帯数",caption = "https://dashboard.e-stat.go.jp/timeSeries",col="凡例")+
theme_minimal(base_family = "HiraKakuProN-W3")+
coord_flip()
library(ggplot2)
ggplot(dat_,aes(x=時点,y=value,col=key,fill=key))+
geom_col(size=2.5,position = "dodge")+
labs(title = "世帯の家族類型",subtitle = "1995-2015",y="世帯数",col="凡例",fill="凡例",caption = "https://dashboard.e-stat.go.jp/timeSeries")+
theme_minimal(base_family = "HiraKakuProN-W3")
dat <- dat0
# 世帯数の合計を計算
t <- dat[,2] + dat[,3] + dat[,4] + dat[,5]
# 計の列を追加する
dat$T <- t
# 扱いやすいよう項目名を簡略化
colnames(dat) <- c("year","a","b","c","d","T")
library(tidyr)
dat <- dat %>%
mutate(dat, ar=a/T*100,br=b/T*100,cr=c/T*100,dr=d/T*100) %>%
select(year,ar,br,cr,dr)
# 項目名をもとに戻す
colnames(dat) <- c("年","a 核家族世帯","b 核家族以外の世帯",
"c 非親族を含む世帯",
"d 単独世帯")
# long formatに変換
dat_ <- gather(dat,"key","value",-年)
aes(x=年,y=value,col=key,group=key)
geom_line()
library(ggplot2)
ggplot(dat_,aes(x=年,y=value,col=key,group=key))+
geom_line(size=2.5)+
labs(title = "世帯の家族類型(構成比率)",subtitle = "1995-2015",y="パーセント",caption = "https://dashboard.e-stat.go.jp/timeSeries",col="凡例")+
theme_minimal(base_family = "HiraKakuProN-W3")
aes(x=年,y=value,col=key,fill=key)
geom_col()
library(ggplot2)
ggplot(dat_,aes(x=年,y=value,col=key,fill=key))+
geom_col(size=2.5)+
labs(title = "世帯の家族類型(構成比率)",subtitle = "1995-2015",y="パーセント",caption = "https://dashboard.e-stat.go.jp/timeSeries",col="凡例",fill="凡例")+
theme_minimal(base_family = "HiraKakuProN-W3")
核家族率を親族世帯数分母にして計算。
# 保存したデータを呼び出す
dat <- dat0
str(dat)
## 'data.frame': 5 obs. of 5 variables:
## $ 時点 : chr "1995年" "2000年" "2005年" "2010年" ...
## $ a 核家族世帯 : num 25702598 27272891 28327091 29206899 29754438
## $ b 核家族以外の世帯: num 6747188 6322014 5918670 5308648 4560560
## $ c 非親族を含む世帯: num 210748 276160 359686 456455 463639
## $ d 単独世帯 : num 11239389 12911318 14457083 16784507 18417922
# IとIIの計を計算
t <- dat[,2] + dat[,3]
# 計の列を追加する
dat$T <- t
# 扱いやすいよう項目名を簡略化
colnames(dat)
## [1] "時点" "a 核家族世帯" "b 核家族以外の世帯"
## [4] "c 非親族を含む世帯" "d 単独世帯" "T"
colnames(dat) <- c("year","a","b","c","d","t")
colnames(dat)
## [1] "year" "a" "b" "c" "d" "t"
library(tidyr)
dat <- dat %>%
mutate(dat, ar=a/t*100) %>% # 核家族率を計算
select(year,ar) # 年と核家族率だけを選択
dat
# long formatに変換
dat_ <- gather(dat,"key","value",-year)
col=key,group=keyとaesで設定する。
ggplot(dat_,aes(x=year,y=value,col=key,group=key))+
geom_line(size=1)+
ylim(0,100)+
theme_minimal(base_family = "HiraKakuProN-W3")+
theme(legend.position = "none")+
labs(title="「核家族率」の推移",subtitle="親族のみの世帯を分母で計算",y="パーセント",x="時点",caption="国勢調査、全国")