I'm still learning the ropes of R. I have a question about using the write.csv function in a user-defined function to create uniquely named exportable csvs.
For example:
pie_final <- function(num_animal) {
  anim_prac <- animal[num_animal]
  out_anim <- capture.output(anim_prac)
  out_final_calc <- as.character(strsplit(out_anim, " ")[[1]][2]) 
  samp_anim <- registry[(registry$Animal == anim_prac),]
  out_final_calc
}
pie_final_2 <- function(num_animal) {
  anim_prac_2 <- animal[num_animal]
  out_anim_2 <- capture.output(anim_prac_2)
  out_final_calc_2 <- as.character(strsplit(out_anim_2, " ")[[1]][2]) 
  samp_anim_2 <- registry[(registry$Animal == anim_prac_2),]
  samp_dis
}
csv_name <- function(x){
  (write.csv(
    do.call(
      "<-", 
      list(pie_final(x), pie_final_2(x))
    ), 
    cat(sprintf("file=\"%s.csv\"", pie_final(x)))
  ))
}  
The first two functions work correctly. However, I'm hoping that the csv_name function will output a written csv file using the write.csv function with a unique name each time. For example, I am hoping the file = argument in the write.csv function will print pie_final(x) (which is a string) followed by .csv.
When I run the function, I get the following error.
file="Falcon.csv"
Error in if (file == "") file <- stdout() else if (is.character(file)) { : argument is of length zero 
So, it seems like the second argument for the write.csv function is being produced (file = "Falcon.csv"), but it doesn't seem to be inserted correctly to execute the entire write.csv function.
My ultimate goal is to have the final function produce uniquely-named exportable csv files.
Do you know how to get around this issue?
 
    