akima и/или rgl закрывают Rstudio

следующая процедура закрывает мою Rstudio: я понимаю, что это любой из пакетов akima или rgl или обоих. Как это решить? данные здесь

s=read.csv("GRVMAX tadpoles.csv")
require(nlme) 
t=s[s$SPP== levels(s$SPP)[1],]
head(t)
t=na.omit(t)
t$TEM=as.numeric(as.character(t$TEM))


library(akima)
x=t$TEM
y=t$value
z=t$time
spline <- with(t,interp(x,y,z,duplicate="median",linear=T))
# rotatable 3D plot of points and spline surface
library(rgl)
open3d(scale=c(1/diff(range(x)),1/diff(range(y)),1/diff(range(z))))
with(spline,surface3d(as.character(x),y,z, col))

points3d(x,y,z, add=T)
title3d(xlab="temperature",ylab="performance",zlab="time")
axes3d()

person Agus camacho    schedule 25.10.2016    source источник


Ответы (1)


interp() вызывает проблему. Я думаю, причина в том, что масштаб y сильно отличается от x (алгоритм interp() в основном для контура пространственной карты). Итак, interp() запустите, когда вы дадите измененный масштаб. (Примечание: я сделал y*10 и output/10, но, возможно, это грубое изменение масштаба. Было бы лучше рассмотреть методы изменения масштаба)

library(nlme); library(akima); library(rgl)

s = read.csv("GRVMAX tadpoles.csv")
t = s[s$SPP == levels(s$SPP)[1],]
t = na.omit(t)
head(t)
t$TEM = as.numeric(as.character(t$TEM))

x = t$TEM
y = t$value * 10                # scale change
z = t$time

spline <- interp(x, y, z, duplicate = "median", linear = T)  # with() is unnecessary
spline$y <- spline$y / 10       # rescale
y <- y / 10                     # rescale

open3d()                                      # Is scale needed ??
 # persp3d() can directly take interp.obj as an argument
persp3d(spline, col = "blue", alpha = 0.5, axes = F, xlab="", ylab="", zlab="")
points3d(x, y, z, add=T)
title3d(xlab="temperature", ylab="performance", zlab="time")
axes3d()

введите описание изображения здесь

person cuttlefish44    schedule 26.10.2016