- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我正在使用一个记录用户驱动事件的大型电子数据库。本质上,我想获得一整年每月新用户对该服务的比例/百分比。以下只是数据的模拟示例:-
UserId Month UserEventId
Tyrhjj01 Jan 0998907
Fghhey21 Jan 0989892
Hyhkio52 Jan 7782901
hejdoe78 Jan 3889201
Tyrhjj01 Feb 7829930
sjjwilsn Feb 7728910
Tyrhjj01 Feb 9203749
nnkilo89 Feb 7728912
Fghhey21 Feb 4463782
...等等。如您所见,有些客户经常使用该服务,而有些客户在 2 月份是唯一的。我想获得一定比例的老客户和系统独有的客户。我正在附上一个插图,以帮助更好地理解。
新老客户的百分比:
.
我尝试了 dplyr 和 data.table 中的几个示例,但无济于事。任何帮助将不胜感激!
最佳答案
如果您为每个月创建一个包含唯一用户的新数据集,那么您可以使用 data.table
中的 rowid
来查看它们是否存在于 df 中
在前几个月。
library(data.table)
setDT(df)
users <- df[, .(user = unique(UserId)), Month]
users[, visit := rowid(user)] # create variable for number of months user has visited
users[, .(new_pct = mean(visit == 1)), Month]
# Month new_pct
# 1: Jan 1.0
# 2: Feb 0.5
或者使用 tidyverse
编辑:如果您的 Month
列实际上是字符月份名称,则下面的解决方案不起作用。如下所示,dplyr
分组会重新排序您的数据(与 data.table
不同),因此使用此方法会产生不正确的结果。我将保留下面的代码,因为如果 Month
是日期类列,它就可以工作。
df %>%
group_by(Month) %>%
do(user = unique(.$UserId)) %>%
unnest %>%
group_by(user) %>%
mutate(visit = row_number()) %>%
group_by(Month) %>%
summarise(new_pct = mean(visit == 1))
# # A tibble: 2 x 2
# Month new_pct
# <chr> <dbl>
# 1 Feb 1.00
# 2 Jan 0.500
使用的数据:
df <- fread("
UserId Month UserEventId
Tyrhjj01 Jan 0998907
Fghhey21 Jan 0989892
Hyhkio52 Jan 7782901
hejdoe78 Jan 3889201
Tyrhjj01 Feb 7829930
sjjwilsn Feb 7728910
Tyrhjj01 Feb 9203749
nnkilo89 Feb 7728912
Fghhey21 Feb 4463782
")
关于在 R 中按月检索客户的独特比例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52669762/
对于 Prometheus 指标集合,如标题,我真的找不到只能通过 type Summary 完成的用例。 ,似乎它们都可以通过 type Histogram 以某种方式完成还。 让我们以请求并发度量
这个问题在这里已经有了答案: Ignore case while using duplicated (1 个回答) 关闭 9 个月前。 使用不区分大小写的 unique(tolower(x)) 删除
应用程序监控服务的一个有用功能是每次发生新的、独特的错误/问题/异常时发送警报(例如电子邮件)(即不是每次发生)。要么只是第一次,要么最多每次 X 次(一天或一周等)。例如,这可以通过 Visual
应用程序监控服务的一个有用功能是每次发生新的、独特的错误/问题/异常时发送警报(例如电子邮件)(即不是每次发生)。要么只是第一次,要么最多每次 X 次(一天或一周等)。例如,这可以通过 Visual
我想要相当于 DB2 中 MySql 的 GROUP_CONCAT 功能。 我尝试过 DB2 的 XML Aggrigate 函数来合并 murows。 SELECT a.ID, sub
我正在运行 python 数据库迁移脚本 (Flask-Migrate) 并添加了 alembic.ddl.imp import DefaultImpl 来解决第一组错误,但现在我收到以下错误。我正在
我有一个逗号分隔的文件“myfile.csv”,其中第 5 列是日期/时间戳。 (mm/dd/yyyy hh:mm)。 我需要列出所有包含重复日期的行(有很多) 我正在通过 cygwin 为 WinX
我使用的是 MySQL 5.7。 我有一个表格如下: -------------------------------------------------- | id | currentcy_id |
所以我有一个像这样的 ng-repeat: Join Ride /md-switch> 但是,每个 md-switch 都有相同的模型,因此当我在 Control
据我了解, Mongoose 预保存 Hook 在将文档插入集合之前但在验证发生之后触发。因此,如果一次验证失败,则不会调用预保存 Hook 。 就我而言,无论如何都会调用它们: 下面的简单代码的作用
如果我对我的目标文件执行此 grep,我会得到例如 275 作为结果。 但是我想学习 awk,所以在 awk 中尝试了这个: awk 'BEGIN { count=0 } /my pattern/
我是一名优秀的程序员,十分优秀!