Когда я пытаюсь запустить следующий фрагмент кода в Spotfire Professional как «R Script — Tibco Enterprise Runtime for R»:
mydata_broken <- structure(
list(
Var1 = list(3.99083333270391, 3.99083333270391, 3.99083333270391, 3.99083333270391),
Var2 = list(3.99083333270391, 3.99083333270391, 3.99083333270391, 3.99083333270391)),
row.names = c("1", "2", "3", "4"),
class = "data.frame",
out.attrs = list(dim = c(2L, 2L),
dimnames = list(
Var1 = c("Var1=3.99083333270391", "Var1=3.99083333270391"),
Var2 = c("Var2=3.99083333270391", "Var2=3.99083333270391")
)
)
)
mydata_ok <- structure(
list(
Var1 = list(3.99083333270391),
Var2 = list(3.99083333270391)),
row.names = "1",
class = "data.frame",
out.attrs = list(dim = c(1L, 1L),
dimnames = list(
Var1 = "Var1=3.99083333270391",
Var2 = "Var2=3.99083333270391")
)
)
out <- apply(mydata_broken, 1, function(y) mean(as.numeric(y)))
Я получаю следующее сообщение об ошибке:
Среда TIBCO Enterprise Runtime для R вернула ошибку: «Ошибка в expand.names(x): нижний индекс выходит за пределы». в Spotfire.Dxp.Data.DataFunctions.Executors.LocalFunctionClient.OnExecuting(FunctionClient funcClient)
(остальная часть трассировки стека опущена)
Однако тот же код безупречно работает в простом R. Если я заменю mydata_broken
на mydata_ok
в вызове apply()
, все будет работать как положено (и в TERR, и в простом R).
Вещи, которые я пробовал до сих пор:
- используйте
yy
вместоy
в анонимной функции, предоставляемойapply()
(чтобы исключить некоторые глупые проблемы с именами, касающиесяy
) - поместите все в блок
local({...})
и проверьте его в R, как было предложено в почему ошибка нижнего индекса за пределами в Shiny, а не в R?
Информация о версии и конфигурации
- Spotfire 5.5.0, версия сборки 5.5.0.31, дата сборки: 22.05.2013
- R версия 3.0.2, 64 бит (25 сентября 2013 г.)
- Виндовс 7, 64бит
Итак, мой вопрос: я делаю здесь какую-то глупую ошибку? Или это ошибка в среде выполнения Spotfire R?
ОБНОВЛЕНИЕ Я хотел бы снова открыть вопрос, потому что у меня есть действенный обходной путь от службы поддержки Spotfire, и я хотел бы добавить его в качестве ответа.
TIBCO Spotfire 6.5.3
, но должно ли это быть связано с тем, какTERR
читает структуру? Поскольку я не используюlist()
, мне интересно, это все еще ошибка? - person Chetan Arvind Patil   schedule 08.08.2017