シンタックスハイライト

データサイエンス関係のブログを拝見していると,普段Rstudioで表示されるようにコードの視認性が高くなるようなスタイルが設定されています.HPBではRmarkdownで生成したhtmlをそのまま埋め込むことができないので少し放置していました.

このあたりの知識は全くなかったので,よく参考にしているHPのソースコードを見ると○○syntax highlightのような記述が・・・

このキーワードを検索してみたところ以下のサイトが比較的簡単に導入できそうな例を紹介しています.

JavaScriptでシンタックスハイライトする入力エリアを提供するライブラリを探した

このサイトの内容を参考にして,Rmarkdownで生成したhtmlファイルのソースコードからjavascriptとcssファイルを作成して,多元素データの生成の前半部分のコードに適用してみました.

 

library(mvtnorm)
# {MASS}の()では負の相関を扱えない

m = 67 # number of variable
g = 5
n = 60 # sample size
N = g *n

d.cor <- read.csv("cor.csv") 
m.cor <- as.matrix(d.cor[,-1])

GM <- read.csv("GM.csv")
GM <- GM[,-1]

GSD <- read.csv("GSD.csv")
GSD <- GSD[,-1]

#
df <- rmvnorm(n=N, mean=rep(0, m), sigma=m.cor)
# もう一度標準化しておく
df <- scale(
  df, 
  center = TRUE, # 平均値を0にする
  scale = TRUE # 標準偏差を0にする
  )

# for文を使ってセル[i, j]にlog(GSD[,j])を乗じて,log(GM[,j])を足して
# logから元に戻すために10^ の計算をする
for (i in 1:N)  {
  for (j in 1:m) {
    df[i, j] <- 10 ^ ( df[i, j]* log10(GSD[1, j]) + log10(GM[1, j])  )
  }
}

# 変数名を元素名に変更
colnames(df) <- colnames(GM)
d.ele <- as.data.frame(df)

# 後々比較を行うことを考えて,5つの地域と月の列を追加
area <- rep(1:5, 60)
month <- rep(1:12, 25)
df.ele <- cbind(area, month, d.ele)

HPBだけではjavascriptやcssファイルの場所を指定・保存できていないので,FFFTPで別途jsフォルダとcssフォルダを作成してその中に保存しました.

これはHPBのプレビューではコードにカラーが付いていることを確認できないので,何度か試行錯誤しましたが,なんとか上手くいったようです.

これまでの内容もすべて更新しました.モヤモヤしていたのがスッキリしました.これでもう少しブログの更新頻度を上げたいところです.

2017年11月09日