empdata是一个数据框,如下所示:
employee <- c('John','Peter','Jolie')
salary <- c(10000, 20000, 30000)
startdate <- as.Date(c('2010-11-1','2010-11-25','2011-10-14'))
empdata <- data.frame(employee, salary, startdate)
我想在empdata中提取日期在[startdate]和[enddate]之间的总行数。例如,如果startdate = 2010-11-1和enddate = 2010-11-30,那么我想要answer = 2.
答案 0 :(得分:2)
我认为这应该可以帮到你
NROW(empdata[(empdata$startdate >= "startdate" & empdata$startdate <= "enddate"),])
这将为您提供过滤数据框中的行数。
答案 1 :(得分:1)
您可以尝试:
mystartdate = '2010-11-01'
mystopdate = '2010-11-30'
empdata[empdata$startdate > mystartdate & empdata$startdate < mystopdate,]
答案 2 :(得分:1)
包dplyr
可以轻松有效地完成这些工作(适用于较大的数据集)。
在这里:
library(dplyr)
mystartdate = '2010-11-1'
mystopdate = '2010-11-30'
# First filter you dataframe, then count the number of rows
nrow(filter(empdata, startdate >= mystartdate & startdate <= mystopdate))
注意:我想从你的帖子中可以看出它应该包括所提到的日期(因为所需的答案是2)。请务必根据您的需要检查操作员。