我想创建一个将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)
无法产生输出,并且不会导致任何错误或警告。我在做什么错了?
答案 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)
}