# 全て既存データを削除
rm(list = ls())
海外現地法人四半期調査
library(readxl)
FDI2012Appendix <- read_excel("Data_raw/2012_10-12.xls",
sheet = "付表3")
# 必要変数に絞る
FDI2012 <- FDI2012Appendix[, c(1, 2, 3, 4, 7, 8, 11, 12, 15, 16, 19, 20)]
# 変数名の変更
FDI2012$country <- FDI2012$` < 付表3 >` # country
FDI2012$q4 <- FDI2012$...4 # vars
FDI2012$q1 <- FDI2012$...8 # q4
FDI2012$q2 <- FDI2012$...12 # q1
FDI2012$q3 <- FDI2012$...16 #q2
FDI2012$vars <- FDI2012$...2 #q3
# 必要変数に絞る
FDI2012 <- FDI2012[, c("country", "vars", "q1", "q2", "q3", "q4")]
# 必要な観測値に絞る
FDI2012 <- FDI2012[c(8:58), ]
# 国IDを付与する
FDI2012$id <- rep(1:17, each=3)
head(FDI2012)
## # A tibble: 6 × 7
## country vars q1 q2 q3 q4 id
## <chr> <chr> <chr> <dbl> <dbl> <dbl> <int>
## 1 <NA> 売上高 6782254 6943804 6517970 6282558 1
## 2 アメリカ 有形固定資産 194527 194437 218494 167233 1
## 3 <NA> 従業者数 409497 422598 425909 397331 1
## 4 <NA> 売上高 1336378 1360703 1285407 1272833 2
## 5 インドネシア 有形固定資産 68557 64726 65917 53511 2
## 6 <NA> 従業者数 296185 300663 298530 297586 2
- 2, 5,
8,..番目のセルにのみ国名があるので、前後のセルにも国名を入れる。
- seq(2, 50, 3)は、2〜50まで、3ずつの数列を作る。
FDI2012$country
## [1] NA "アメリカ" NA NA "インドネシア"
## [6] NA NA "マレーシア" NA NA
## [11] "フィリピン" NA NA "タイ" NA
## [16] NA "大韓民国" NA NA "シンガポール"
## [21] NA NA "台湾" NA NA
## [26] "中国(香港含)" NA NA "インド" NA
## [31] NA "ベトナム" NA NA "イギリス"
## [36] NA NA "フランス" NA NA
## [41] "ドイツ" NA NA "オランダ" NA
## [46] NA "ブラジル" NA NA "メキシコ"
## [51] NA
for(i in seq(2, 50, 3)) {
FDI2012$country[i-1] <- FDI2012$country[i]
FDI2012$country[i+1] <- FDI2012$country[i]
}
# 具体例
#FDI2012$country[1] <- FDI2012$country[2]
#FDI2012$country[3] <- FDI2012$country[2]
FDI2012$country
## [1] "アメリカ" "アメリカ" "アメリカ" "インドネシア" "インドネシア"
## [6] "インドネシア" "マレーシア" "マレーシア" "マレーシア" "フィリピン"
## [11] "フィリピン" "フィリピン" "タイ" "タイ" "タイ"
## [16] "大韓民国" "大韓民国" "大韓民国" "シンガポール" "シンガポール"
## [21] "シンガポール" "台湾" "台湾" "台湾" "中国(香港含)"
## [26] "中国(香港含)" "中国(香港含)" "インド" "インド" "インド"
## [31] "ベトナム" "ベトナム" "ベトナム" "イギリス" "イギリス"
## [36] "イギリス" "フランス" "フランス" "フランス" "ドイツ"
## [41] "ドイツ" "ドイツ" "オランダ" "オランダ" "オランダ"
## [46] "ブラジル" "ブラジル" "ブラジル" "メキシコ" "メキシコ"
## [51] "メキシコ"
変数型の統一
- qiの変数型のみ文字変数で、as.numericでも数値変数に変換できなかったので、一旦csvに出力し、データを読み直し、数値変数にする。
library(readr)
write_csv(FDI2012, file = "Data_output/FDI2012.csv")
wideからlong形式に
# 全て既存データを削除
rm(list = ls())
library(readr)
FDI2012 <- read_csv("Data_output/FDI2012.csv",
col_types = cols(q1 = col_double(),
q2 = col_double(),
q3 = col_double(),
q4 = col_double(),
id = col_double()))
head(FDI2012)
## # A tibble: 6 × 7
## country vars q1 q2 q3 q4 id
## <chr> <chr> <dbl> <dbl> <dbl> <dbl> <dbl>
## 1 アメリカ 売上高 6782254 6943804 6517970 6282558 1
## 2 アメリカ 有形固定資産 194527 194437 218494 167233 1
## 3 アメリカ 従業者数 409497 422598 425909 397331 1
## 4 インドネシア 売上高 1336378 1360703 1285407 1272833 2
## 5 インドネシア 有形固定資産 68557 64726 65917 53511 2
## 6 インドネシア 従業者数 296185 300663 298530 297586 2
library(tidyr)
FDI2012long <- pivot_longer(FDI2012,
starts_with("q"),
names_to = "quarter",
values_to = "q")
head(FDI2012long)
## # A tibble: 6 × 5
## country vars id quarter q
## <chr> <chr> <dbl> <chr> <dbl>
## 1 アメリカ 売上高 1 q1 6782254
## 2 アメリカ 売上高 1 q2 6943804
## 3 アメリカ 売上高 1 q3 6517970
## 4 アメリカ 売上高 1 q4 6282558
## 5 アメリカ 有形固定資産 1 q1 194527
## 6 アメリカ 有形固定資産 1 q2 194437
long形式からwide形式へ
library(tidyr)
FDI2012wide <- pivot_wider(FDI2012long,
names_from = vars,
values_from = q)
# values_from = c(q1, q2, q3, q4))
head(FDI2012wide)
## # A tibble: 6 × 6
## country id quarter 売上高 有形固定資産 従業者数
## <chr> <dbl> <chr> <dbl> <dbl> <dbl>
## 1 アメリカ 1 q1 6782254 194527 409497
## 2 アメリカ 1 q2 6943804 194437 422598
## 3 アメリカ 1 q3 6517970 218494 425909
## 4 アメリカ 1 q4 6282558 167233 397331
## 5 インドネシア 2 q1 1336378 68557 296185
## 6 インドネシア 2 q2 1360703 64726 300663
年次追加
FDI2012wide$year <- 2012
FDI2012wide$year[FDI2012wide$quarter == "q4"] <- 2011
四半期変数
- 四半期変数の作成。
paste
関数を使って、四半期(q1, q2, q3,
q4)と年(2012,…)を結合して、2012q1のような値をもつ四半期変数を作成する。
FDI2012wide$yq <- paste(FDI2012wide$year, FDI2012wide$quarter, sep = "")
# 変数の型の確認
class(FDI2012wide$yq)
## [1] "character"
- 文字列として認識されている2012q1のような値をもつ四半期変数を、時系列変数として設定する。
- Rの時系列変数作成には、
lubridate
やzoo
というパッケージがある。ここではzoo
を用いる。
library(zoo)
FDI2012wide$yq <- as.yearqtr(FDI2012wide$yq)
# 変数の型の確認
class(FDI2012wide$yq)
## [1] "yearqtr"
library(readr)
write_csv(FDI2012, file = "Data_output/FDI2012wide.csv")
グラフ作成
library("ggplot2")
# グラフ
graph <- ggplot(FDI2012wide, aes(x = yq, y = 従業者数, colour = country)) +
geom_point()+
geom_smooth(se = FALSE, method = 'lm') +
labs(x = "quarter",
y = "no. of employees",
title ="Japanese multinational firms' oversea affiliates",
caption = "Data: Survey of Trends in Business Activities of Foreign Affiliates") +
theme_bw()
動的グラフの表示
library("plotly")
ggplotly(graph)