【问题标题】:R - How to delete rows with certain datesR - 如何删除具有特定日期的行
【发布时间】:2018-06-20 05:14:28
【问题描述】:

我有一个这样的数据框:

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" 

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

我试过了,但没有成功:

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

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

【问题讨论】:

  • testframe[index,](或testframe[!index,],具体取决于您要保留的行的indexTRUE 还是FALSE)。

标签: r dataframe row subset


【解决方案1】:

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

基础 R

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

dplyr

library(dplyr)

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

数据表

library(data.table)

setDT(testframe)

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

【讨论】:

  • 非常感谢。实际上我知道行和列的概念,但我不知道在这种情况下我也需要它。
猜你喜欢
  • 2019-09-11
  • 2015-01-19
  • 1970-01-01
  • 2021-08-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-09-25
相关资源
最近更新 更多