Функция `hot_to_r ()` из пакета `rhandsontable` не работает внутри" нормального ".R-скрипта - как вы проверяете аспект ваших данных внутри блеска? - PullRequest
1 голос
/ 15 октября 2019

Я пытаюсь понять, как hot_to_r() преобразовать объект списка, полученный с помощью rhandsontable(). Моя цель - увидеть объект, который вы получите после hot_to_r() процессов, чтобы отладить блестящее приложение.

Однако, кажется, что вы не можете сделать это вне блестящего приложения т.е. внутри скрипта .R.

[ПРАВКА] поиск далее приводит меня к этой записи. Мы уверены, что объект, который вы получаете из fromJSON(), совпадает с объектом из hot_to_r()

Вот скрипт .R, который я пытался использовать, чтобы увидеть вывод hot_to_r():

library(rhandsontable)
library(tidyverse)
library(jsonlite)

# dummy dataframe
df = data.frame(id = c("a", "b"),
                val = c(0.75, 0.25))

# convert it to a "rhansontable" object
test = rhandsontable(df)

# try to convert it back to a dataframe but it doesn't work
test_hot = hot_to_r(test)

# however, this works but I am not sure if test_json is the same as test_hot
test_json = fromJSON(test$x$data)

test_hot = hot_to_r(test) приводит к этой ошибке:

test_df = hot_to_r (тест)

Ошибка в (функция (данные, изменения, параметры, .. .): отсутствует аргумент «params» без значения по умолчанию

Я очень новичок в сиянии; я что-то упускаю?

Это нормально, что вы не можете получить hot_to_r() работать внутри .R-скрипта?

Если да, как вы проверяете «аспект» ваших данных в блестящем приложении? Общая цель - сделать расчеты с заполненным пользователями разделом. Я хочупреобразуйте этот объект в фрейм данных, чтобы внести корректные изменения, чтобы получить «аккуратный» набор данных.

1 Ответ

0 голосов
/ 15 октября 2019

hot_to_r предназначен для использования с блестящим вводом (который содержит аргумент params, упомянутый в сообщении об ошибке).

Для отладки в блестящем контексте я бы порекомендовал использовать browser().

Пожалуйста, проверьте следующее:

library(rhandsontable)
library(shiny)

ui <- fluidPage(
  rHandsontableOutput("myTable")
)

server <- function(input, output, session) {
  # dummy dataframe
  df = data.frame(id = c("a", "b"),
                  val = c(0.75, 0.25), stringsAsFactors = FALSE)

  # convert it to a "rhansontable" object
  output$myTable <- renderRHandsontable({rhandsontable(df)})

  observeEvent(input$myTable, {
    test_df = hot_to_r(input$myTable)
    print(test_df)
    # browser() # uncomment for debugging
  })

}

shinyApp(ui, server)

Однако, fromJSON также является допустимым подходом.

...