R - 如何删除具有特定日期的行

时间:2018-01-10 23:01:30

标签: r dataframe row subset

我有一个这样的数据框:

x1= c("Station 1", "Station 1", "Station 2", "Station 3", "Station 3", "Station 3")
x2= c("1993-06-08", "1994-06-09", "1982-06-10", "1993-06-11", "1992-06-12", "1997-06-13")
x3= seq(5, 30, length=6)
x4= seq(4, 16, length=6)
x5= seq(10, 60, length=6) 

testframe = data.frame(Station=x1, Date=x2, Morning=x3, Noon=x4, Evening=x5) 

testframe[,2] = as.Date(testframe[,2], format="%Y-%m-%d")
class(testframe$Date) 

现在我要删除1993-01-01之前记录的所有行。

我这样做了:

index = testframe[,2] >= "1993-01-01" 

它会返回正确的True和False列表,但我不知道如何继续。

我试过了,但没有成功:

new = testframe[index]
new = [-c(testframe[index]),]

有人可以帮忙吗?我知道这应该很容易,但我不明白。

1 个答案:

答案 0 :(得分:3)

要记住的主要概念:data.frame[rows, columns]

基础R

testframe[testframe[["Date"]] >= "1993-01-01", ]

dplyr

library(dplyr)

testframe %>% filter(Date >= "1993-01-01")

data.table

library(data.table)

setDT(testframe)

testframe[Date >= "1993-01-01", ]