在dplyr中滑动组

时间:2016-07-15 08:40:29

标签: r dplyr

我有一个数据集,其中包含每个日期的许多唯一标识符,例如

df <- data.frame(date = as.Date(c("2016-01-01", "2016-01-01", "2016-01-02", "2016-01-02")), 
ids = c(3, 4, 1, 3))

然后,我想总结一下这些信息,以获取当前日期出现的新唯一ID的数量。例如,1月1日有两个唯一的ID(3和4)。但是在1月2日,只有一个新的唯一ID(1)。因此,结果数据框应如下所示:

date          n_new_unique_ids
2016-01-01                   2
2016-01-02                   1

dplyr这可能吗?我看了一下lag但是固定的滞后大小在这种情况下没有意义。或者可能还有其他包裹?

2 个答案:

答案 0 :(得分:2)

一种选择是删除所有public class myWebClient extends WebViewClient { @Override public void onPageStarted(WebView view, String url, Bitmap favicon) { super.onPageStarted(view, url, favicon); } @Override public boolean shouldOverrideUrlLoading(WebView view, String url) { view.loadUrl(url); return true; } @Override public void onPageFinished(WebView view, String url) { super.onPageFinished(view, url); } } //flipscreen not loading again @Override public void onConfigurationChanged(Configuration newConfig){ super.onConfigurationChanged(newConfig); } @Override protected void onActivityResult(int requestCode, int resultCode, Intent intent) { if(requestCode==FILECHOOSER_RESULTCODE){ if (null == mUploadMessage) return; Uri result = intent == null || resultCode != RESULT_OK ? null : intent.getData(); mUploadMessage.onReceiveValue(result); mUploadMessage = null; } } &#39; ID&#39;来自数据集

duplicated

更新

使用更新的数据

df %>%
  filter(!(duplicated(ids)|duplicated(ids, fromLast=TRUE)))
#        date ids
#1 2016-01-01   2
#2 2016-01-02   3

答案 1 :(得分:0)

使用aggregate的一种方法。我们只能保留那些具有唯一ID的行,然后找到它length

aggregate(ids~date, df[!duplicated(df$ids),], length)

#     date     ids
#1 2016-01-01   2
#2 2016-01-02   1