我正在分析学校的旷工数据,我正在寻求一些帮助。对于每天,我有360行(教室),其中包含当天(第1列)缺席的数量(第2列)和非缺席的学生(第3列)。
有些日子(节假日)只有20个班级报告,因为其他340个班级没有班级。我想从我的数据集中删除那些行。换句话说,我想消除
类并希望从我的数据集中删除所有条目,其中日期的条目总数小于某个数字。换句话说,如果包含日期x的行总数小于200,我想删除所有带日期x的行。
这是我到目前为止所得到的:
for (i in c(min(df$date):max(df$date))){
b <- df[df$date == i,]
z <- as.vector(ifelse(nrow(b[which(b$date==i),]) <200, "FALSE", "TRUE"))
print(z)
df$newcolumn <- z
}
这打印z,每天都会告诉我那天是否符合我的条件,但是我无法找到将z合并回数据框的10000行的方法。相反,我的df $ newcolumn只是由所有TRUE填充。
非常感谢任何帮助。
答案 0 :(得分:1)
如果没有可重复的示例,很难做到真实,但不像df[ ! df$date %in% z, ]
那样有效吗?
%in%
将返回一个逻辑向量,表明每个元素是否存在于另一个向量中,!
否定所以如果它>> 200则返回TRUE,[ rowselector,]
从中选择行data.frame。