Сохраните график R к веб-серверу

Я пытаюсь создать процедуру, которая извлекает данные из сервера MySQL (использующий пакет RODBC), выполняет некоторые статистические стандартные программы на тех данных в R, затем сохраняет сгенерированные графики назад к серверу, таким образом, что они могут быть получены в веб-браузере через определенные php и веб-волшебство.

Мой план состоит в том, чтобы сохранить график в поле MySQL BLOB при помощи пакета RODBC для выполнения, SQL вставляют в оператор. Я думаю, что могу вставить данные непосредственно как строку. Проблема, как я получаю строку данных, и это будет даже работать? Моя лучшая мысль состоит в том, чтобы использовать функцию savePlot, чтобы сохранить временный файл, и затем читать это въезжает задним ходом так или иначе.

Кто-либо попробовал это прежде, или имейте предложения о том, как приблизиться к этому?

9
задан stotastic 19 July 2010 в 21:37
поделиться

3 ответа

Независимо от того, считаете ли вы это ужасной идеей, вот рабочий ответ, который я смог собрать воедино из этого поста

## open connection
library(RODBC)
channel <- odbcConnect("")

## generate a plot and save it to a temp file
x <- rnorm(100,0,1)
hist(x, col="light blue")
savePlot("temp.jpg", type="jpeg")

## read back in the temp file as binary
plot_binary <- paste(readBin("temp.jpg", what="raw", n=1e6), collapse="")

## insert it into a table
sqlQuery(channel, paste("insert into test values (1, x'",plot_binary,"')", sep=""))

## close connection
odbcClose(channel)

Перед реализацией я обязательно проведу некоторую работу над собой, чтобы решить, стоит ли использовать это вместо использования файловой системы серверов.

2
ответ дан 5 December 2019 в 02:07
поделиться

Хранение изображений в базах данных часто не одобряется. Для создания файла в памяти в R вы можете использовать textConnection в качестве соединения. Это даст вам строку. Это сработает, если вы не забудете установить правильный тип mime и откроете соединение как двоичное.

0
ответ дан 5 December 2019 в 02:07
поделиться

Сохраните график на сервере и запишите имя файла в базу данных. Будет работать. Но тут может помочь штука под названием Rapache. Кроме того, у Джеруна Оомса есть онлайн-демонстрация , в том числе веб-интерфейс для известного пакета R Graph ggplot2 Хэдли Уикхема.

0
ответ дан 5 December 2019 в 02:07
поделиться
Другие вопросы по тегам:

Похожие вопросы: