2012-08-25 70 views
-1

我是R新手,一般編碼,請耐心等待。將數據列表進行子集

我有一個巨大的.csv文件的金融期權價格,但一些是調用('C'),一些是放('P'),他們只是在一個連續的列表。在.csv文件中,它們是交替的,所以一行將成爲一次調用的數據,而另一行將成爲相同時間段內相同安全性的數據。我怎樣才能解析出電話(put)的數據?

此外,數據按日期排列,但每個日期(日內數據)有多條數據。在這些日內數據點中,有多個不同價格的(數量)數據。我想在每一天的不同價格上構建所述數據的正態分佈;我會怎麼做?

symbol exchange date stock_close_price option_symbol expiration strike call/put 
ALSN NYSE 7/23/12 17.71 ALSN 120818C00015000 8/18/12 15 C 
ALSN NYSE 7/23/12 17.71 ALSN 120818P00015000 8/18/12 15 P 
ALSN NYSE 7/23/12 17.71 ALSN 120818C00017500 8/18/12 17.5 C 
ALSN NYSE 7/23/12 17.71 ALSN 120818P00017500 8/18/12 17.5 P 
ALSN NYSE 7/23/12 17.71 ALSN 120818C00020000 8/18/12 20 C 
ALSN NYSE 7/23/12 17.71 ALSN 120818P00020000 8/18/12 20 P 
ALSN NYSE 7/23/12 17.71 ALSN 120818C00022500 8/18/12 22.5 C 
ALSN NYSE 7/23/12 17.71 ALSN 120818P00022500 8/18/12 22.5 P 
ALSN NYSE 7/23/12 17.71 ALSN 120818C00025000 8/18/12 25 C 
+7

編輯您的問題,包括第10行的文件。此外,定義巨大(多少列和行或多少GB)。並且不要期待一封電子郵件。如果你有答案,你會在這個網站上找到它。 – Roland

+0

我添加了前10行,但是當我保存它時,數據被擾亂並且難以辨認。 – pascale

+2

任何基本的R教程都會告訴您如何讀取文件以及如何從數據框中選擇行。先走開並做一些基礎研究。每個SO帖子只問一個問題。 – Spacedman

回答

0

如果數據是在R數據幀,「DFRM」,用列「transtype」,「trans_date_time」,「音量」,以及日期,時間值是POSIXct格式,那麼這應該產生一個通話交易量的每日總結。我不確定我是否知道「按照每天不同價格構建所述數據的正態分佈」的含義,但是如果您的意思是顯示可以使用繪圖函數很容易完成的每日交易量分佈。

set.seed(123) 
dfrm <- data.frame(transtype = c("c","p")[sample(1:2, 20, rep=TRUE)], 
        trans_date_time = as.POSIXct(Sys.Date() - 20) + 
             rnorm(100, 24*60*60, 3*24*60*60) , 
        volume = 100*rpois(100, 5)) 
str(dfrm) 
dailycallvol <- with(subset(dfrm, transtype == "c"), 
        aggregate(volume, 
         by = list(day= format(trans_date_time, format="%Y-%m-%d")), 
         FUN=sum)) 
hist(dailycallvol[[2]]) 

enter image description here

+0

這就像在家庭仇恨時候,當參賽者在問題被閱讀之前嗡嗡作響。 – GSee

+0

感謝您的回覆。這段代碼對我來說還是有些陌生的,但我明白了你要去的地方。 – pascale

+1

想象一下旋轉的豌豆。 (We R程序員是一個相當具體的團隊,也許增加這個例子會讓這個變得更加真實,它讓我發現了我想象中的代碼中的一些錯誤。) –

相關問題