型強制エラー

R は、予期しない型強制を実行することがあります。R スクリプトで alpine_output 変数を割り当てた場合、R 実行オペレーターは R がデータ フレームを返すことを期待するため、型強制は問題を引き起こす可能性があります。

型強制の一般的なケースの 1 つは、データ フレームから単一のカラムを選択する場合です。カラムはデータ フレームから 「数値」 型に強制され、Team Studio にダブルの配列として返されます。データ フレームは java.util.Map として返されるため、これにより Java ClassCastException が発生しますが、R の強制操作によりデータ フレームではなく数値ベクトルが返されることになります。型強制を元に戻すには、R で型キャストを行う必要があります。ただし、投影されたカラムから数値ベクトルに対して as.data.frame を呼び出すと、間違った名前が関連付けられるため、次の例のように、データ フレームの作成後にカラムの名前を変更する必要があります。

> x <- rnorm(1:10)
> y <- rnorm(1:10)
> xy <- data.frame(x=x, y=y)
> head(xy)
            x          y
1  0.43765921 -0.5160450
2  0.69197730  0.1938183
3  0.08869384 -1.2843015
4  0.99896046 -1.2151482
5 -1.08242907  0.1109868
6 -0.55645055 -1.3973622
> class(xy)
[1] "data.frame"
> xOnly <- xy$x
> head(xOnly)
[1]  0.43765921  0.69197730  0.08869384  0.99896046 -1.08242907 -0.55645055
> class(xOnly)
[1] "numeric"
> xOnlyAsDataFrame <- as.data.frame(xy$x)
> head(xOnlyAsDataFrame)
            xy$x
1  0.43765921
2  0.69197730
3  0.08869384
4  0.99896046
5 -1.08242907
6 -0.55645055
> names(xOnlyAsDataFrame) <- "x"
> head(xOnlyAsDataFrame)
            x
1  0.43765921
2  0.69197730
3  0.08869384
4  0.99896046
5 -1.08242907
6 -0.55645055
> class(xOnlyAsDataFrame)
[1] "data.frame"
>