在函数中使用带有 read.csv 的粘贴
using paste with read.csv inside a function
我想创建一个使用 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)
无法生成输出,并且不会导致任何错误或警告。我做错了什么?
您需要使用 <<- 而不是 <-
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)
Return 来自函数的数据帧
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)
}
你总是可以使用 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)
编辑:我没有明确表示您的问题已由 myfunction()
中的 return(df)
解决
我想创建一个使用 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)
无法生成输出,并且不会导致任何错误或警告。我做错了什么?
您需要使用 <<- 而不是 <-
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)
Return 来自函数的数据帧
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)
}
你总是可以使用 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)
编辑:我没有明确表示您的问题已由 myfunction()
return(df)
解决