我有一个这样的数据框:
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]),]
有人可以帮忙吗?我知道这应该很容易,但我不明白。
答案 0 :(得分:3)
要记住的主要概念:data.frame[rows, columns]
testframe[testframe[["Date"]] >= "1993-01-01", ]
library(dplyr)
testframe %>% filter(Date >= "1993-01-01")
library(data.table)
setDT(testframe)
testframe[Date >= "1993-01-01", ]