2011-04-03 28 views
2
9059 2011-02-18     2.81 
9060 2011-02-21     <NA> 
9061 2011-02-22     2.72 
9062 2011-02-23     2.75 
9063 2011-02-24     2.73 
9064 2011-02-25     2.7 
9065 2011-02-28     2.73 
9066 2011-03-01     2.75 
9067 2011-03-02     2.77 
9068 2011-03-03     2.79 
9069 2011-03-04     2.81 
9070 2011-03-07     2.81 
9071 2011-03-08     2.83 
9072 2011-03-09     2.78 
9073 2011-03-10     2.72 
9074 2011-03-11     2.76 
9075 2011-03-14     2.75 
9076 2011-03-15     2.7 

以上是名爲'mydata'的數據框的片段。第一列的名稱是V1和第二個V2。第一列包含使用as.Date()函數轉換的日期。R項目:繪圖數據框

我想在一個x-y網格上繪製x軸上的第1列和y軸上的第2列。我嘗試了幾個小時沒有成功的各種組合。

我試圖

> plot(mydata[,1], mydata[,2]) 

這使得R控制檯掛起,看來,它是呈現什麼荒謬的。

+0

看起來你有一個因素對2列,其中數據顯示數值。 str(mydata)對你的數據說什麼?如果第2列是因子,則將其轉換爲數字:使用mydata < - (mydata,V2 < - as.numeric(as.character(V2)))並重試。對於數十萬個觀測數據的類似數據,地塊應該不會遇到非常大的矢量和地塊的問題。 – 2011-04-04 06:14:14

回答

1

這對我的作品(雖然我不知道,如果它產生所需的輸出

usr <- textConnection("9059 2011-02-18     2.81 
9060 2011-02-21     <NA> 
9061 2011-02-22     2.72 
9062 2011-02-23     2.75 
9063 2011-02-24     2.73 
9064 2011-02-25     2.7 
9065 2011-02-28     2.73 
9066 2011-03-01     2.75 
9067 2011-03-02     2.77 
9068 2011-03-03     2.79 
9069 2011-03-04     2.81 
9070 2011-03-07     2.81 
9071 2011-03-08     2.83 
9072 2011-03-09     2.78 
9073 2011-03-10     2.72 
9074 2011-03-11     2.76 
9075 2011-03-14     2.75 
9076 2011-03-15     2.7") 

usr <- read.table(usr, header = FALSE)[-1] #remove the first column 

with(usr, plot(V3 ~ V2)) 
+0

謝謝羅馬!我嘗試了'(dat,plot(V2〜V1)),但也失敗了。我想要做的就是這樣一個簡單的情節。我可以在20秒內在Excel中做到這一點,但我不想使用Excel,因爲它是垃圾。 :-) – codingknob 2011-04-03 13:32:51

+0

mydata有多大? dim(mydata)說什麼?如果你只是試圖繪製前10行(mydata [1:10,1],mydata [1:10,2])?彙總(mydata)是做什麼的?你可以繪製任何東西(例如,用plot(runif(100)))? – Spacedman 2011-04-03 13:49:25

+0

一旦我加載數據使用read.zoo(見上文)我運行以下: >長度(sprd) [1] 9088 我可以繪製它,但現在我有一種情況,其中x軸標籤是每10年一次。我的數據代表的是2和10年期美國國債回到1976年。我想x軸的標籤是季度之間的利差。任何想法如何我可以實現這一點?我試過 > plot(as.yearqtr(sprd),sprd,type ='l') if(del == 0 && to == 0)返回(to)時出錯: 缺少值其中TRUE/FALSE需要 – codingknob 2011-04-03 13:57:36

1

我得到它的工作執行以下操作:

> x2 <- read.zoo("2_yr_tsy_rate.txt", format="%m/%d/%Y", sep=",", na.strings="ND") 
> 
> x10 <- read.zoo("10_yr_tsy_rate.txt", format="%m/%d/%Y", sep=",", na.strings="ND") 
> 
> sprd <- x10 - x2 
> 
> plot(sprd) 

這個工作?但如果我使用read.csv加載數據,並嘗試更改數據對象,這是一場噩夢。

現在我還有一個問題:繪圖工作,但每10年報告一次x軸標籤。是inte休息速率傳播可追溯到1976年。我希望x軸標籤是季度。我嘗試了各種各樣的東西,包括以下,但有錯誤。

> plot(as.yearqtr(sprd), sprd, type='l') 
Error in if (del == 0 && to == 0) return(to) : 
    missing value where TRUE/FALSE needed 

這是str的輸出(我的對象)

> str(sprd) 
‘zoo’ series from 1976-06-01 to 2011-03-31 
    Data: num [1:9088] 0.68 0.71 0.7 0.77 0.79 0.79 0.82 0.86 0.83 0.83 ... 
    Index: Class 'Date' num [1:9088] 2343 2344 2345 2346 2349 ... 
> 
+0

嘗試將此作爲獨立問題進行包裝。提供一個可重複的例子。 – 2011-04-03 14:40:29