我试图通过将参数传递给R中的函数来读取文件。相同的语法在函数外部但不在函数中。
> corr <- function(directory){
z <- sprintf("C:\\Users\\rajat\\Documents\\education\\Coursera\\Computing for Data Analysis\\%s\\001.csv",directory)
print(z)
data2<-read.csv(z)
}
corr(directory="specdata")
[1] "C:\\Users\\rajat\\Documents\\education\\Coursera\\Computing for Data Analysis\\specdata\\001.csv"
> data2
> Error: object 'data2' not found
不使用功能的人会给出正确的结果。
> directory="specdata"
> z <- sprintf("C:\\Users\\rajat\\Documents\\education\\Coursera\\Computing for Data Analysis\\%s\\001.csv",directory)
> print(z)
[1] "C:\\Users\\rajat\\Documents\\education\\Coursera\\Computing for Data Analysis\\specdata\\001.csv"
> data1<-read.csv(z)
> str(data1)
'data.frame': 1461 obs. of 4 variables:
$ Date : Factor w/ 1461 levels "2003-01-01","2003-01-02",..: 1 2 3 4 5 6 7 8 9 10 ...
答案 0 :(得分:2)
data2
只存在于corr
函数的环境中。要使其全球可用,请执行data2<<-read.csv(z)
。然后它将在函数外部找到。更多信息:http://stat.ethz.ch/R-manual/R-patched/library/base/html/assignOps.html
免责声明:更简洁的方法是从函数中返回数据:
corr <- function(directory) {
z <- sprintf("C:\\Users\\rajat\\Documents\\education\\Coursera\\Computing for Data Analysis\\%s\\001.csv",directory)
print(z)
return(read.csv(z))
}
data2 <- corr(directory="specdata")
data2
请参阅下面的@thelatemail评论。