警告の抑止(未検証)
options(warn=-1)library(・・・)
# 読み込んだよーというメッセージがでなくなる
警告の抑止(検証済) その2
sink(file="/tmp/r.log") # console output is redirected to "/tmp/r.log"
sink() # reset to the console.
警告の抑止(未検証) その3
options("getSymbols.yahoo.warning"=FALSE).
ヒストグラムの出力
# kikan like kikan or "2018::06-21::2018-07-13"
# len is a number of samples.
# loc_x is x-axis position kikan 0 to 1.
# loc_y is y-axis.
# br is breaks for hist()
# ymax is max value of y-axis.
# xmin and xmax are for x-axis
# color is from 1 to 9?
hist(as.vector(last(par_xts[kikan][,highlow],n=len)),breaks=br,xlim=c(xmin,xmax),ylim=c(0,ymax),col=color)
axis(side=2, pos=round(mean(par_xts[kikan][,highlow])),labels=F)
#
# par + text to output overlay messages on the graph.
# graph's dimension data to graph_dim
# "graph_dim[1] + graph_dim[2] * loc_x " is 50% of horizontal loc
#
graph_dim <- par('usr')
text( graph_dim[1] + graph_dim[2] * loc_x ,(graph_dim[4] - graph_dim[3]) * (loc_y+0) + graph_dim[3] ,paste("#",len,sep="="),adj=c(0,0))
垂直線をxtsグラフに引く
events <- xts(c("natrix","weight"),as.Date(c("2018-06-20", "2018-07-14")))
addEventLines(events, srt=90, pos=2,col=10)
未検証だが以下もOKなはず。
addEventLines(as.xts(c("natrix","weight"),as.Date(c("2018-06-20", "2018-07-14"))), srt=90, pos=2,col=10)
多面プロットのやり方(plot when multi.panel=T and yaxis.same=F)
plot(merge(to.monthly(N225["2007-01::"])[,4],as.vector(residuals(result)/to.monthly(N225)[,4])),multi.panel=TRUE,yaxis.same=FALSE)
季節調整 case shiller 10 city composite.
CS.stl <- stl(ts(as.numeric(CS),frequency=12), s.window="periodic")
last(merge(CS,as.numeric(CS.stl$time.series[,2]),suffixes = c("","season")),n=24)
plot(last(merge(CS,as.numeric(CS.stl$time.series[,2])),n=48)[,1] - last(merge(CS,as.numeric(CS.stl$time.series[,2])),n=48)[,2])
chartSeries(
weekly_pf,
show_grid=TRUE,
type="candlesticks"
)
ffmpegの使い方 再生できないファイルがある場合
再生できないファイルがある場合、mp4に変換してやるとうまくvlcで再生できることが多い。以下はcodecを変更しないでコンテナだけをmp4に変えてやる使い方。以下はaviファイルでオーディオストリームに問題があるらしい場合のエラーメッセージ。
[avi @ 0x7ffaf7800000] Could not find codec parameters for stream 1 (Audio: mp3 (mp3float) (U[0][0][0] / 0x0055), 48000 Hz, 2 channels, fltp, 128 kb/s): unspecified frame size
で、オーディオストリームはそのままにしてコンテナだけをmp4に変更する。
# no conversion just switch container. highly reliable.
ffmpeg -i <INPUT>.avi -codec:v copy -codec:a copy <OUTPUT>.mp4
OR
ffmpeg -i <INPUT>.avi -codec:a copy out.mp4
こちらは ビデオストリームをコピーする例。やはり、コンテナはmp4に変更する。
ffmpeg -i <INPUT>.mkv -vcodec copy <OUTPUT>.mp4
OR
ffmpeg -i sample_input.mkv -vcodec copy sample_output.mp4
for文とカウンタ in bash
j=0;for i in *.mkv; do echo $i; let ++j ; echo $j ; ffmpeg -y -i $i -vcodec copy $j.mp4; done
- ;を書く文の最後に
- let をつかってカウンタを加算する
- ffmpeg -yで既存ファイルがあっても強制上書き
- forはdo とdoneで受ける
- 変数は初期化すること
以下と等価となる。
j=0;for i in *.mkv;
> do echo $i
> let ++j
> echo $j
> ffmpeg -y -i $i -vcodec copy $j.mp4
> done
j=0;for i in *.mp4; do let ++j; mv $j.mp4 hibike_euphonuim_S2E$j.mp4; done
Hibike Euphonium 1 [BD 720p]$ ls *.mp4 | awk '{ print "mv "$1" "$1}' | gsed -e 's/E\([1-9]\)\./E0\1./2'
mv hibike_euphonuim_S1E1.mp4 hibike_euphonuim_S1E01.mp4
mv hibike_euphonuim_S1E10.mp4 hibike_euphonuim_S1E10.mp4
mv hibike_euphonuim_S1E11.mp4 hibike_euphonuim_S1E11.mp4
awk のgensub関数を使えば、sedは使わなくて良いはず。第二引数の"g"はグローバル?例えば2を指定すると2番めにヒットした正規表現だけを処理してくれるらしい。(要研究)
ls *.mp4 | awk '{ print "ls "$1" "gensub("0([1-9])","1\\1","g",$1)}'
j=0;for i in *.mp4; do let ++j; mv $j.mp4 hibike_euphonuim_S2E$j.mp4; done
-e 大事。これがないと\1 が使えない。(間違い。なくてもOK)- さいごの「2」で出現順序を指定して置換する。
- \(<patter>\)で指定して\1で受けてる。
Zero Padding by sed
ただし、awkのgensub関数を使ったほうが良いと思うHibike Euphonium 1 [BD 720p]$ ls *.mp4 | awk '{ print "mv "$1" "$1}' | gsed -e 's/E\([1-9]\)\./E0\1./2'
mv hibike_euphonuim_S1E1.mp4 hibike_euphonuim_S1E01.mp4
mv hibike_euphonuim_S1E10.mp4 hibike_euphonuim_S1E10.mp4
mv hibike_euphonuim_S1E11.mp4 hibike_euphonuim_S1E11.mp4
awk のgensub関数を使えば、sedは使わなくて良いはず。第二引数の"g"はグローバル?例えば2を指定すると2番めにヒットした正規表現だけを処理してくれるらしい。(要研究)
ls *.mp4 | awk '{ print "ls "$1" "gensub("0([1-9])","1\\1","g",$1)}'
gensub関数 in awk
gensub(regexp, replacement, how [, target])gensubは汎用的な置換関数である。subやgsubのように 対象文字列targetから正規表現regexpに マッチする部分を検索する。subやgsubと違うのは、 関数の戻り値として置換が行われた文字列を返し、 元の文字列を変更しないという点である。
gensub を使うとこうなる。
K-On!$ ls | awk '{print "ffmpeg -i \""$0"\" K-OnS1E" gensub(/(\y.\y)/,"0\\1",1,$3)".mp4"}'
ffmpeg -i "K-ON! Ep 01 - Dissolution!.mkv" K-OnS1E01.mp4
ffmpeg -i "K-ON! Ep 02 - Instruments!.mkv" K-OnS1E02.mp4
ffmpeg -i "K-ON! Ep 03 - Special Lessons!.mkv" K-OnS1E03.mp4
ffmpeg -i "K-ON! Ep 04 - Training Camp!.mkv" K-OnS1E04.mp4
ffmpeg -i "K-ON! Ep 05 - Advisor!.mkv" K-OnS1E05.mp4
ffmpeg -i "K-ON! Ep 06 - School Festival!.mkv" K-OnS1E06.mp4
ffmpeg -i "K-ON! Ep 09 - New Club Member!.mkv" K-OnS1E09.mp4
ffmpeg -i "K-ON! Ep 10 - Another Training Camp!.mkv" K-OnS1E10.mp4
ffmpeg -i "K-ON! Ep 11 - Crisis!.mkv" K-OnS1E11.mp4
ffmpeg -i "K-ON! Ep 12 (Season Finale) - Light Music!.mkv" K-OnS1E12.mp4
ffmpeg -i "K-ON! Ep 13 (Extra) - Winter Days!.mkv" K-OnS1E13.mp4
ffmpeg -i "K-ON! Ep 14 (OVA) - Live House!.mkv" K-OnS1E14.mp4
ffmpeg -i "K-ON! Ep 7 - Christmas!.mkv" K-OnS1E07.mp4
ffmpeg -i "K-ON! Ep 8 - Freshman Reception!.mkv" K-OnS1E08.mp4
gawk 正規表現
\w
[[:alnum:]_]
の簡潔な表現とみなして良い。\W
[^[:alnum:]_]
の簡潔な表現とみなして良い。\<
/\<away/
は`away'にマッチするが、 `stowaway'にはマッチしない。\>
/stow\>/
は`stow'にマッチするが、 `stowaway'にはマッチしない。\y
\B
/\Brat\B/
は`crate'にマッチする。しかし、`dirty rat' にはマッチしない。`B'は簡単にいうと`\y'の反対語である。\( .... \) () でマッチの塊を扱う
\n \n は n 番目の () に対応 ([a-z]*) \1*
0 件のコメント:
コメントを投稿