1
比方說,我們有一個數據幀:如何選擇數據框中的前幾行?
df <- data.frame(a=1:5, b=4:8)
我怎麼能由以前的行子集?例如,如果我在第3行,我想獲取第1行和第2行的值,如果我在第4行,我想獲取值第2行和第3行。我如何在R中執行此操作?
比方說,我們有一個數據幀:如何選擇數據框中的前幾行?
df <- data.frame(a=1:5, b=4:8)
我怎麼能由以前的行子集?例如,如果我在第3行,我想獲取第1行和第2行的值,如果我在第4行,我想獲取值第2行和第3行。我如何在R中執行此操作?
使用zoo
庫(要小心,因爲基地滯後的工作方式不同):
library(zoo)
df <- zoo(df)
df[lag(df$b, -1) == 4, ]
a b
2 2 5
df[lag(df$b, -2) == 4, ]
a b
3 3 6
這可能是太簡單了,但如果你想有一個通用的答案,這可能是恰到好處:
# create your data.frame, not using 'df' as it is an R function name
myDF <- data.frame(a=1:5, b=4:8)
# you know you "are at row 4"
i <- 4
# so you can get the previous two rows simply with
myDF[ (i - 2:1), ]
a b
2 2 5
3 3 6
之前有多少行?從你的帖子看來,這似乎是兩個。 –
不清楚,但你可以看看'head'或[lag](http://www.inside-r.org/packages/cran/Hmisc/docs/Lag)或[shift](https://github.com /Rdatatable/data.table) – user227710
@Pascal是的,讓我們說這個例子的2行。我希望能有這樣的一般解決方案 – eyio