我有以下data.table
library(data.table)
dt <- data.table(id=c(1,2,3,4,4,5,5),
name=c('a','a','b','c','c','e','e'),
url=c('aa.com','aa1.com','bb.com','cc.com','cc.com', 'ee.com', 'ee.com'))
返回
id name url
1: 1 a aa.com
2: 2 a aa1.com
3: 3 b bb.com
4: 4 c cc.com
5: 4 c cc.com
6: 5 e ee.com
7: 5 e ee.com
从dt
中可以看到,url
和id
是唯一变量。 Name
列不是唯一的,可以是相同数据的重复。例如,Name
可以相同,但是url
和id
不能相同。
我想要的结果如下:
id name url N
1: 1 a aa.com 1
2: 2 a aa1.com 1
3: 3 b bb.com 1
4: 4 c cc.com 2
5: 5 e ee.com 2
能给我建议吗?
答案 0 :(得分:0)
library(dplyr)
dt %>% group_by(id,name,url) %>%
summarise(N = n())
# A tibble: 5 x 4
# Groups: id, name [?]
id name url N
<dbl> <chr> <chr> <int>
1 1 a aa.com 1
2 2 a aa1.com 1
3 3 b bb.com 1
4 4 c cc.com 2
5 5 e ee.com 2
答案 1 :(得分:0)
这是可行的解决方案:unique(dt[,list(N=.N, id=id), by = url])