Type coercion error
R sometimes performs type coercion, which you might not expect. Type coercion can cause problems because the R Execute operator expects R to return a data frame if you assign the alpine_output variable in the R script.
One common case of type coercion is when you select a single column from the data frame. The column is coerced from a data frame to a "numeric" type, which is returned to Team Studio as an array of doubles. This causes a Java ClassCastException because data frames are returned as java.util.Map, but the R coercion results in a numeric vector being returned, rather than a data frame. You must do type casting in R to undo the type coercion. However, calling as.data.frame on a numeric vector from a projected column associates it with a wrong name, so you must rename the column after you create the data frame, as in the following example.
> 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" >