这对您来说可能有点异想天开,因为类似的问题在dplyr
中很容易解决,但我仍然想知道如何解决,为了说明这一点,假设我正在查看雇员数据,目标是找出给定的雇员-日期对有多少条记录。
# Mockup employee data
df <- data.frame(
person_id = c(1, 2, 1),
record_date = as.Date(c("2020-01-01", "2020-01-01", "2020-01-01")),
salary = c(100, 110, 109)
)
# By object counts rows for each unique employee-date pair
out <- by(
data = df,
INDICES = df[, c("win", "record_date")],
FUN = nrow
)
现在的任务是查找计算出的行数大于1的所有雇员-日期对。我在Web上还找不到答案,“by”是一个不好的搜索词。我可以做如下操作:
out>1
# record_date
# person_id 2020-01-01
# 1 TRUE
# 2 FALSE
但我不确定如何获得(1,“2020-01-01”)。
2条答案
按热度按时间balp4ylt1#
您可以使用
ave
。您也可以在
subset
中使用它。注意,
ave
在内部使用by
。wwwo4jvm2#
如果您只希望person / id组合具有多个记录,则可以执行以下操作
或者,如果您想要所有计数,只需删除
subset
: