我正在使用dplyr尝试计算另一列的特定行数。

因此,此命令的输出将返回类似以下内容:
facebook 2
hello.com 1
news.com 1
yahoo 1它类似于
select hostname, count(request)
from data
group by hostname在mysql中。
我看过dplyr包,但不确定如何指定要按哪个变量进行分组
编辑:数据来自美国国家航空航天局的http请求,来自此链接site
发布于 2018-02-23 00:56:12
以下是data.table方法。我使用了您提供的数据来说明这个概念-请提供数据,以便其他人可以重现问题(如评论中所指出的)。
DATA
library(data.table)
dt <- data.table(hostname = c("hello.com", "news.com", "facebook", "yahoo", "facebook"),
request = c("GET /blah/blah", "GET /hello", "GET /no", "GET /yes", "GET /hello"))代码
> dt
hostname request
1: hello.com GET /blah/blah
2: news.com GET /hello
3: facebook GET /no
4: yahoo GET /yes
5: facebook GET /hello
> dt[, .N, by = hostname]
hostname N
1: hello.com 1
2: news.com 1
3: facebook 2
4: yahoo 1这里的.N是给出计数的data.table参数。您可以将其重命名为其他名称(以下示例中的“count”):
> dt[, .(count = .N), by = hostname]
hostname count
1: hello.com 1
2: news.com 1
3: facebook 2
4: yahoo 1如果你希望每个条目都有多种可能性,比如facebook、facebook.com或facebook.co.uk,你就需要使用正则表达式。在这种情况下,一种很好的方法是按名称排序,然后使用grep查找通用模式并按这些模式进行聚合。
https://stackoverflow.com/questions/48932067
复制相似问题