以下は、idvar と timevar に加えて、xvar、yvar、colorvar、sizevar のデフォルト値を指定できる gvisMotionChart への小さなインターフェイス関数です。これは、提供された data.frame の列の順序を変更するだけで実現できます。この関数はブール値も数値に変換します (それ以外の場合、gvisMotionChart はエラーをスローします)。モーション チャートは断面データの分析にも非常に便利なので、timevar=NULL を設定できます。
# Convenience interface to gvisMotionChart that allows to set default columns
myMotionChart = function(df,idvar=colnames(df)[1],timevar=colnames(df)[2],xvar=colnames(df)[3],yvar=colnames(df)[4], colorvar=colnames(df)[5], sizevar = colnames(df)[6],...) {
library(googleVis)
# Generate a constant variable as column for time if not provided
# Unfortunately the motion plot still shows 1900...
if (is.null(timevar)) {
.TIME.VAR = rep(0,NROW(df))
df = cbind(df,.TIME.VAR)
timevar=".TIME.VAR"
}
# Transform booleans into 0 and 1 since otherwise an error will be thrown
for (i in 1:NCOL(df)) {
if (is.logical(df [,i])[1])
df[,i] = df[,i]*1
}
# Rearrange columns in order to have the desired default values for
# xvar, yvar, colorvar and sizevar
firstcols = c(idvar,timevar,xvar,yvar,colorvar,sizevar)
colorder = c(firstcols, setdiff(colnames(df),firstcols))
df = df[,colorder]
gvisMotionChart(df,idvar=idvar,timevar=timevar,...)
}