# 全て既存データを削除
rm(list = ls())

1 海外現地法人四半期調査

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
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] "メキシコ"

2 変数型の統一

  • qiの変数型のみ文字変数で、as.numericでも数値変数に変換できなかったので、一旦csvに出力し、データを読み直し、数値変数にする。
library(readr)
write_csv(FDI2012, file = "Data_output/FDI2012.csv")

3 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

4 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

5 年次追加

FDI2012wide$year <- 2012
FDI2012wide$year[FDI2012wide$quarter == "q4"] <- 2011 

6 四半期変数

  • 四半期変数の作成。
  • paste関数を使って、四半期(q1, q2, q3, q4)と年(2012,…)を結合して、2012q1のような値をもつ四半期変数を作成する。
FDI2012wide$yq <- paste(FDI2012wide$year, FDI2012wide$quarter, sep = "")

# 変数の型の確認
class(FDI2012wide$yq)
## [1] "character"
  • 文字列として認識されている2012q1のような値をもつ四半期変数を、時系列変数として設定する。
  • Rの時系列変数作成には、lubridatezooというパッケージがある。ここではzooを用いる。
library(zoo)
FDI2012wide$yq <- as.yearqtr(FDI2012wide$yq)

# 変数の型の確認
class(FDI2012wide$yq)
## [1] "yearqtr"
library(readr)
write_csv(FDI2012, file = "Data_output/FDI2012wide.csv")

7 グラフ作成

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()

8 動的グラフの表示

library("plotly")
ggplotly(graph)