【发布时间】:2015-07-17 14:43:26
【问题描述】:
我有一个问题,我似乎无法在网上任何地方找到答案。如果它已经被回答,我很抱歉,但是这里有。我在 R 中编写了一个脚本,它将为我完成预测过程,并根据交叉验证和其他标准返回最佳点预测。我想将此脚本保存为一个函数,这样我就不必每次去预测时都使用完整的脚本。我的脚本的基本设置如下:
output <- read.csv("C:/Users/data.csv", header = T)
colnames(output)
month_count = length(output[,1]) ##used in calculations throughout code
current_year = output[1,1]
current_month = output[1,2]
months = 5 #months to forecast out
m = 0
data <- ts(output[,3][c(1:(month_count-m))],
frequency = 12, start = c(current_year,current_month))
#runs all the other steps from here on
我正在编写的函数看起来像这样,它接受各种输入,然后运行脚本并打印回我的预测
forecastMe = function(sourcefile,months,m)
{
#runs the data prints out the result
}
我遇到的问题是我希望能够在函数中输入目录和文件名,例如 C:/Users/documents/data1.csv (对于源文件部分),然后在我的 R 脚本的这一步。
output <- read.csv("C:/Users/sourcefile.csv", header = T)
我似乎找不到让它正确执行的方法。有什么想法或建议吗?
【问题讨论】:
-
您遇到的具体问题是什么?我在这里没有发现任何问题。
-
所以我想运行这样的函数 forecastMe(C:/users/documents/data.csv, 5, 10),但它不会将第一个字符串放入 read.csv 行稍后的。我是否应该创建一行,例如 file = "c:/users/documents/data.csv",然后将其作为 forecastMe(file,5,10) 运行?
-
只需在函数体中将
"C:/Users/data.csv"替换为sourcefile,然后删除months和m的声明,因为您将它们传递给函数调用。 -
所以现在可以正常工作了,但我现在收到错误 ts(x) 中的错误:对象不是矩阵
标签: r forecasting