2013-03-10 79 views
-2

所以你可以看到我有以下[R編程 - 如何找到兩個值之間的差異在特定的行

Price Day 
    2 1 
    5 2 
    8 3 
    11 4 
    14 5 
    17 6 
    20 7 
    23 8 
    26 9 
    29 10 
    32 11 
    35 12 
    38 13 
    41 14 
    44 15 
    47 16 
    50 17 
    53 18 
    56 19 
    59 20 

價格和天列然後我想下面的輸出

Difference Day 
    12 5 
    15 10 
    15 15 
    15 20 

基本上我每隔5天就有價格差異......它基本上是在第一天減去第5天......然後在第5天減去第10天......我已經制定了一個代碼把我的數據分成5天的時間間隔......但是我希望代碼能讓我減去第一天的價格...... th é第10天與第5天的價格...等 我幾天前發佈了類似的問題...這裏的鏈接:How to extract certain rows ....所有的答案是有益的,我有點之前嘗試過,但他們似乎沒有要工作?任何其他的建議將是巨大的:d 但我沒有真正得到我想要的輸出....我有高達3000天的數據....感謝ü

+1

@AndrewKibet,你爲什麼又問同樣的問題?如果它不起作用,那麼你應該在下面的回答中發表評論*特別是*不起作用; *不*創建一個新問題。 – Arun 2013-03-10 15:09:57

+1

迴應@Arun,你應該能夠提供一個*不同*的例子來複制你的問題。那些在你提供的樣本數據集上工作的人,所以如果你沒有分享你所做的來解決問題,我們真的不能做更多的事情。 – A5C1D2H2I1M1N2O1R2T1 2013-03-10 15:11:28

+0

對不起,但我試着發表評論,但沒有出現......我的問題是當我嘗試數據[c(1,seq(5,nrow(data),5)),] , diff(data [c(1,seq(5,nrow(data),5)),「Time」] .....我得到一個NULL結果...而不是DAY被分成5天間隔它的價格被分成5 ....:O – 2013-03-11 03:55:11

回答

1

創建示例數據:

tmp <- structure(list(Price = c(2L, 5L, 8L, 11L, 14L, 17L, 20L, 23L, 
26L, 29L, 32L, 35L, 38L, 41L, 44L, 47L, 50L, 53L, 56L, 59L), 
    Day = 1:20), .Names = c("Price", "Day"), class = "data.frame", row.names = c(NA, 
-20L)) 

定義指數天:對指數天

ind <- seq(5, nrow(tmp), by=5) 

計算的區別,配以實際日期:

data.frame(day = tmp[ind, "Day"], diff = diff(tmp[c(1, ind), "Price"])) 
+0

你如何得到這條線沒有複製或粘貼任何東西?c(2L,5L,8L,11L,14L,17L,20L,23L, 26L,29L ,32L,35L,38L,41L,44L,47L,50L,53L,56L,59L) – 2013-03-11 03:56:21

+0

@AndrewKibet鍵入? – Ista 2013-03-11 15:25:29

相關問題