Не в состоянии напечатать python функцию в R - PullRequest
0 голосов
/ 05 февраля 2020

Я объявил функцию python в R, но не могу вызвать ее в R. Не уверен, что я делаю неправильно. Ниже представлен файл ....................................

ui.R file

library(shiny)
library(shinydashboard)
library(reticulate)
source_python("python.py")

dashboardPage(  

  header <- dashboardHeader(disable = TRUE),

  dashboardSidebar(disable = TRUE),

  body <- dashboardBody(fluidRow(

          fluidRow(
          column(width = 12,actionButton("upload","Upload Text",width = 150)),
          column(width = 12,actionButton("clear_upload","Clear Output",width = 150))
        ),
        br(),
        verbatimTextOutput("code")
      )
      )
      )

server.R


server <- function(input, output,session) {
   get_code <- eventReactive(input$upload,{
      py$happyBirthday('Andre')
   })

   observeEvent(input$upload, {
      output$code <- renderPrint(get_code())
   })

   observeEvent(input$clear_upload, {
      output$code <- renderPrint("")
   })
}

python .py

def happyBirthday(person):
    print("Happy Birthday to you!")
    print("Happy Birthday to you!")
    print("Happy Birthday, dear " + person + ".")
    print("Happy Birthday to you!")

1 Ответ

1 голос
/ 05 февраля 2020

Проблема в не в том, что вы не можете вызвать функцию, проблема в том, что вы используете print в определении функции happyBirthday. Но вы должны использовать return! Если я заменим содержимое python .py на

def happyBirthday(person):
    return("Happy Birthday to you!")

, я получу ожидаемый результат.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...