[英]Function for Appending Rows to Data Frame Based on Previous Variable Values in R
[英]How to select rows in an R data frame based on values of previous rows
我有一個似乎是一個我無法解決的簡單問題。 我有一個R數據框,由一列數據點組成,如下所示。 我想將一個新的數據框子集,該數據框包含基於先前數據點的值的數據點。
所以下面,我想比較前一個值大於.04的所有行的子集。 任何想法,將不勝感激。 謝謝。
Price
[1,] -0.006666667
[2,] 0.040268456
[3,] 0.051612903
[4,] -0.006134969
[5,] 0.006172840
[6,] 0.006134969
[7,] 0.030487805
像這樣:
x[c(FALSE, head(x$Price, -1) > 0.04), , drop = FALSE]
(從您的打印中看來,您的對象可能是矩陣,而不是data.frame。如果是這種情況,請將x$Price
替換x$Price
x[, "Price"]
。)
這些類型的操作可以通過使用時間序列表示直接模仿我們的思考過程的方式完成。 這也具有以下優點:它現在處於這種表示中並且還將促進進一步的計算。 假設DF
是數據幀。 將其轉換為動物園對象z
,然后提取滯后超過0.04
的z
的組件:
> library(zoo)
> z <- zoo(DF$Price)
> z[lag(z, -1) > 0.04]
3 4
0.051612903 -0.006134969
如果result
是最后一行代碼的值,則time(result)
給出時間(上例中為3
和4
), coredata(result)
給出數據值。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.