在函数内使用read.csv粘贴

时间:2019-05-21 06:57:49

标签: r read.csv

我想创建一个将read.csv()paste()一起使用的函数。以下代码通常适用

df <- read.csv(paste("/file name", 2010, ".CSV", sep = ""), header = TRUE)

但是当我将其放置在这样的函数中

myfunction <- function(date){df <- read.csv(
                             paste("/file name", date, ".CSV", sep = ""),
                             header = TRUE)
                            }

命令myfunction(2010)无法产生输出,并且不会导致任何错误或警告。我在做什么错了?

3 个答案:

答案 0 :(得分:2)

您需要使用<<-代替<-

myfunction <- function(date){df <<- read.csv(
                             paste("/file name", date, ".CSV", sep = ""),
                             header = TRUE)
                            }

或者您写:

myfunction <- function(date){read.csv(
                             paste("/file name", date, ".CSV", sep = ""),
                             header = TRUE)
                            }
df <- myfunction(2000)

答案 1 :(得分:1)

您始终可以使用sprintf

myfunction <- function(date){
  df <- read.csv(sprintf('/filename%s.csv',date))
  return(df)
}
csv <- myfunction(date)

如果您有很多约会

ListDates <- as.list(dates)
ListOfCsvs <- lapply(ListDates,myfunction)

编辑:我不清楚您的问题已通过return(df)内的myfunction()来解决

答案 2 :(得分:0)

从函数中返回数据框

myfunction <- function(date){
   df <- read.csv(paste("/file name", date, ".CSV", sep = ""),header = TRUE)
   return(df)
}

并分配

df <- myfunction(2010)

在R中,无论如何都会自动返回函数的最后一行,因此这也应该起作用。

myfunction <- function(date){
   read.csv(paste("/file name", date, ".CSV", sep = ""),header = TRUE)
}