我有一个包含很多日期的数据框(数据)。我想删除 1970 年之前的所有内容。我可以创建一个 1970 年之前的索引列表:
tmp <- which(data$data < '1970-01-01')
[1] 13446 102876 141199
我想创建一个删除这三行的新表。就像是:
data.after.1970 <- data[!tmp, ]
我知道我可以创建一个包含1970 年之后所有事件的向量,并与它匹配:
tmp <- which(data$data > '1970-01-01')
data.after.1970 <- data[tmp, ]
但我想知道我会使用什么语法来排除项目。
更新
我终于做到了:
tmp <- which(data$data > as.Date('1970-01-01'))
data.after.1970 <- data[tmp, ]
并仔细看了看。which(data$data < as.Date('1970-01-01'))
得到三个结果,但nrow(data) - nrow(data.after.1970)
显示我删除了 45 行。summary(datae$date)
清除了:
summary(data$date)
Min. 1st Qu. Median Mean 3rd Qu. Max. NA's
"1933-07-01" "1989-01-25" "1992-07-09" "1992-05-03" "1996-06-10" "2006-09-14" "42"
因为我的目标是获得第二个数据集,所以如果我排除那些日期不好的数据集,我可以比较我的结果,我实际上也想删除那些具有 NA 值的数据集。
我仍然想知道我会使用什么语法来排除一些数字向量而不是包含它。