Roy*_*lTS 5 r count data.table
我在不同的s 和不同的s 中观察users ,并且可能会多次看到它们,如下所示:timesituation
df <- data.table(time = c(1,1,1,2,2),
user = c(1,1,2,1,2),
situation = c(1,1,1,2,2),
observation = c(1,2,1,1,1))
Run Code Online (Sandbox Code Playgroud)
我想做的是使用 来计算每个时间段内user-s的数量。预期输出:situationdata.table
result <- data.table(time = c(1,2),
user_situations = c(2,2))
Run Code Online (Sandbox Code Playgroud)
我知道我可以以连锁方式做到这一点:
unique(df[, .(time, user, situation)])[, .(user_situations = .N), .(time)]
Run Code Online (Sandbox Code Playgroud)
但想知道是否有一种简单的方法可以一次性完成此操作。
小智 5
dplyr解决方案:
library(dplyr)\ndf <- data.table(time = c(1,1,1,2,2),\n user = c(1,1,2,1,2),\n situation = c(1,1,1,2,2),\n observation = c(1,2,1,1,1))\n\ndf %>% group_by(time) %>%\n distinct(user, situation) %>%\n summarise(user_situations = n())\n\n# tbl_dt [2 \xc3\x97 2]\n time user_situation\n <dbl> <int>\n1 1 2\n2 2 2\nRun Code Online (Sandbox Code Playgroud)\n
| 归档时间: |
|
| 查看次数: |
5363 次 |
| 最近记录: |