我正在测试R中的一个简单函数,该函数应该将时间序列对象转换为数据帧。 但是,代码在函数外部工作正常,但在函数内部却给我对象错误。
>fx<-function(AMts) {
x<-as.data.frame(AMts)
return(x)
}
>fx()
我希望在我的环境中拥有data.frame x,但是我得到了
Error in as.data.frame(AMts) : argument "AMts" is missing, with no default
答案 0 :(得分:1)
如果在函数内部,则需要使用“ <<-”作为赋值运算符,而不是传统的“ <-”。 <<-告诉R在函数完成运行后保留对象。
>fx<-function(AMts) {
x<<-as.data.frame(AMts) # "<<-" is what saves "x" in your environment
return(x) # remove this line; this prints data frame "x" to the console, but it doesn't save it
}
>fx(AMts)
编辑:正如注释者已经指出的那样,您未在函数中包括任何参数。上面我把它设置为fx(AMts)来明确您也需要将AMts传递给该函数。