【发布时间】:2015-08-09 17:09:37
【问题描述】:
如何从 data.table 中获取唯一行,同时从结果中删除一些列,其中唯一性由多于一列中的值定义?例如:
tbl = data.table(
reader_id = c(10,20,20,30,50),
book_id = c(1,2,2,4,5),
date = c('d1','d2','d3','d4','d5'),
inf = c('i1','i2','i3','i4','i5')
)
>tbl
reader_id book_id date inf
1: 10 1 d1 i1
2: 20 2 d2 i2
3: 20 2 d3 i3
4: 30 4 d4 i4
5: 50 5 d5 i5
ut = unique(tbl[c(reader_id, book_id)])
结果我得到:
reader_id book_id date inf
1: NA NA NA NA
2: 10 1 d1 i1
3: 20 2 d2 i2
4: 30 4 d4 i4
5: 50 5 d5 i5
问题:
- 为什么结果有 NA 值?如何摆脱它们?
- 如何从结果中删除
inf列?
改为:
reader_id book_id date
1: 10 1 d1
2: 20 2 d2
3: 30 4 d4
4: 50 5 d5
【问题讨论】:
-
ut = unique(tbl, by = c("reader_id", "book_id")) 见 ?data.table::unique
标签: r data.table