Search code examples
rfunctionmovie

R function not returning values


I am writing my first R function.

IMDBmovierating <- function(movie){
  link <- paste("http://www.omdbapi.com/?t=", movie, "&y=&plot=short&r=json", `sep = "")`
  jsonData <- fromJSON(link)
  df <- data.frame(jsonData)
}

And then nothing happens. Suspect it has something to do with return being needed. Not sure how I would write this.


Solution

  • To return df, simply write return(df):

    IMDBmovierating <- function(movie){
      link <- paste("http://www.omdbapi.com/?t=", movie, "&y=&plot=short&r=json", sep = "")
      jsonData <- fromJSON(link)
      df <- data.frame(jsonData)
      return(df)
    }
    

    or, even simpler in this case, omit the last assignment:

    IMDBmovierating <- function(movie){
      link <- paste("http://www.omdbapi.com/?t=", movie, "&y=&plot=short&r=json", sep = "")
      jsonData <- fromJSON(link)
      data.frame(jsonData)
    }
    

    If the last expression evaluates to a result object, as data.frame(..) does, then this gets the return object of the enclosing expression and the explicit return statement may be omitted.

    edit: and remove the back-ticks before sep and after you closing parenthesis

    edit2: Of course MrFlick's comment is correct: the only thing really wrong with your code are the back-ticks that probably are simply a typo here on the site. Even the assignment produces the assigned value as a result object, but it is invisible. Hence, you can assign it, but it is not automatically printed on the console.