简单R时间序列函数作图

简单R时间序列函数作图,r,plot,time-series,R,Plot,Time Series,谢谢你抽出时间 我只是试图绘制一个简单的时间序列数据集,但遇到了一些基本问题(我将在这里询问其中一个)。例如,我有一个记事本文件,它的开头是: "x" "1",2.731 "2",2.562 "3",2.632 "4",2.495 "5",1.978 ……等等 因此R可以很好地读取它,例如,myfile=read.table(“F:/Documents/myfile.txt”,sep=“”)。然而,在使用R的ts函数进行转换时,这些值似乎会发生变化,即 myfil

谢谢你抽出时间

我只是试图绘制一个简单的时间序列数据集,但遇到了一些基本问题(我将在这里询问其中一个)。例如,我有一个记事本文件,它的开头是:

"x"   
"1",2.731   
"2",2.562   
"3",2.632   
"4",2.495   
"5",1.978
……等等

因此R可以很好地读取它,例如,
myfile=read.table(“F:/Documents/myfile.txt”,sep=“”)
。然而,在使用R的ts函数进行转换时,这些值似乎会发生变化,即

myfile = ts(myfile,start=1,end=120,frequency=1)

plot(myfile, type="o",pch=22,lty=1,pty=2,xlab="Month",ylab="Values",main="My File")
因此,当绘制时,出于某种原因,第一个值从20+开始,而不是2+。此外,R假设y轴从1到120(镜像x轴),这不是正确的比例(即0到10)。在我做的另一个数据集中(使用整数),它向上移动了1。无论如何,我相信问题可能在于如何正确识别y轴


有没有办法解决这个问题?谢谢

我很惊讶你对你如何阅读数据感到满意。您的文件示例看起来是逗号分隔的,但您告诉R分隔字符为nothing
sep=“”
。当我在您的文件示例中尝试此操作时,我的值是
,2.731
,2.562
,这可能被解释为一个因素…您应该指定
sep=“,”
或使用
read.csv
。这将为您提供一个data.frame。您只想在单个列上运行
ts
ts(myfile[,1])
。然后,如果仍然存在问题,请发布
dput(head(myfile))
,这样我们就可以看到您正在使用的R结构。我认为sep参数似乎有点不合适。不管怎样,你是个救命恩人!