尝试统计R中每个登录id的失败尝试次数
我试图从审核日志中按登录id列出失败尝试的次数。假设审核日志如下所示:尝试统计R中每个登录id的失败尝试次数,r,R,我试图从审核日志中按登录id列出失败尝试的次数。假设审核日志如下所示: User ID | LoginStatus | LoginAttempt ----------+--------------+----------------- 2ABQM4 | F | 1 2ABQM4 | F | 2 1BIDU8 | F | 1 1YUM8T | F | 1 2MP32A | F
User ID | LoginStatus | LoginAttempt
----------+--------------+-----------------
2ABQM4 | F | 1
2ABQM4 | F | 2
1BIDU8 | F | 1
1YUM8T | F | 1
2MP32A | F | 1
2MP32A | F | 2
2ABQM4 | F | 3
1BIDU8 | F | 2
User ID | MaxLoginAttempt
----------+-----------------
2ABQM4 | 3
1BIDU8 | 2
1YUM8T | 1
2MP32A | 2
我想创建一个表,其中按用户ID显示最大登录尝试次数,如下所示:
User ID | LoginStatus | LoginAttempt
----------+--------------+-----------------
2ABQM4 | F | 1
2ABQM4 | F | 2
1BIDU8 | F | 1
1YUM8T | F | 1
2MP32A | F | 1
2MP32A | F | 2
2ABQM4 | F | 3
1BIDU8 | F | 2
User ID | MaxLoginAttempt
----------+-----------------
2ABQM4 | 3
1BIDU8 | 2
1YUM8T | 1
2MP32A | 2
我不知道如何在R中做到这一点。提前感谢上师和前辈们的善意帮助
Arifin您可以使用
聚合:
aggregate(LoginStatus~User.ID, df, function(x) sum(x == 'F'))
# User.ID LoginStatus
#1 1BIDU8 2
#2 1YUM8T 1
#3 2ABQM4 3
#4 2MP32A 2
library(data.table)
setDT(df)[, sum(LoginStatus == 'F'), User.ID]
使用dplyr
:
library(dplyr)
df %>% group_by(User.ID) %>% summarise(Failed_Attempt = sum(LoginStatus == 'F'))
和数据。表:
aggregate(LoginStatus~User.ID, df, function(x) sum(x == 'F'))
# User.ID LoginStatus
#1 1BIDU8 2
#2 1YUM8T 1
#3 2ABQM4 3
#4 2MP32A 2
library(data.table)
setDT(df)[, sum(LoginStatus == 'F'), User.ID]
在本例中,您共享的所有LoginStatus
始终是'F'
,在这种情况下,您还可以计算每个组中的行数