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.
You simply need to evaluate the object at the end of your function so it will return a value. See the simple example below:
EDIT:
As @MrFlick points out, both
funA
andfunB
return the evaluation of the last expression, butfunA
will not print anything. However, if you assign the output offunA(1)
an object, that object will produce the value1
:The moral of the story is that you either need to assign the output of
IMDBmovierating
to an object, or explicitly evaluatedf
at the end of the function.Looks like you just had a few typos.
Try this and dont forget to include your library to help people out when answering you. :)
To return
df
, simply writereturn(df)
:or, even simpler in this case, omit the last assignment:
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 explicitreturn
statement may be omitted.edit: and remove the back-ticks before
sep
and after you closing parenthesisedit2: 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.