I created a function which produces a matrix as a result, but I can't figure out how to make the output of this function usable outside of the function environment, so that I could for instance save it in csv file.
My code for function is the following:
getTitle <- function(url) { webpage <- readLines(url) first.row <- webpage[1] start <- regexpr("<title>", first.row) end <- regexpr("</title>", first.row) title <- substr(first.row,start+7,end-1) return(title) }
getTitles <- function(pages) { my.matrix <- matrix(NA, ncol=2, nrow=nrow(pages)) for (i in seq_along(1:nrow(pages))) { my.matrix[i,1] <- as.character(pages[i,]) my.matrix[i,2] <- getTitle(as.character(pages[i,])) } return(my.matrix) print(my.matrix)}
After running this functions on a sample file from here http://goo.gl/D9lLZ which I import with read.csv function and name "mypages" I get the following output:
getTitles(mypages) [,1] [,2] [1,] "http://support.google.com/adwords/answer/1704395" "Create your first ad campaign - AdWords Help" [2,] "http://support.google.com/adwords/answer/1704424" "How costs are calculated in AdWords - AdWords Help" [3,] "http://support.google.com/adwords/answer/2375470" "Organizing your account for success - AdWords Help"
This is exactly what I need, but I'd love to be able to export this output to csv file or reuse for further manipulations. However, when I try to print(my.matrix), I am getting an error saying "Error: object 'my.matrix' not found"
I feel like it's quite basic gap in my knowledge, but have not been working with R for a while and could not solve that.
Thanks! Sergey
Variables that are created outside of a function are known as global variables. Global variables can be used by everyone, both inside of functions and outside.
Creating a new object is as easy as typing the object's name and assigning a value to it. There are multiple ways to assign values to objects in R. As in many computer languages you can use the equal sign (=) as an assignment operator.
To declare a user-defined function in R, we use the keyword function . The syntax is as follows: function_name <- function(parameters){ function body } Above, the main components of an R function are: function name, function parameters, and function body.
That's easy: use <<-
for assignment to a global.
But then again, global assignment is evil and not functional. Maybe you'd rather return a list with several results from your function? Looking at your code, it seems that your second function may confuse the return
and print
. Make sure you return the correct data structure.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With