【发布时间】:2018-04-30 23:54:23
【问题描述】:
我有一个 data.table,我需要生成另一个 data.table,它只列出每列的唯一值。一个例子:
来自
> sourceDT <- data.table(ID = c(1,2,3,4), date = c(ymd("20110101"),ymd("20110101"),ymd("20130101"),ymd("20150101")), text = c("A","B","C","C"))
> sourceDT
ID date text
1: 1 2011-01-01 A
2: 2 2011-01-01 B
3: 3 2013-01-01 C
4: 4 2015-01-01 C
到
> outputDT <- data.table(ID = c(1,2,3,4),date = c(ymd("20110101"),ymd("20130101"),ymd("20150101"),NA), text = c("A","B","C",NA))
> outputDT
ID date text
1: 1 2011-01-01 A
2: 2 2013-01-01 B
3: 3 2015-01-01 C
4: 4 <NA> NA
实现这一目标的最有效方法是什么?
【问题讨论】:
-
200+ 列和 100k+ 行。
-
所以不是唯一值组合?您希望保留每列的第一次出现并保留 data.table 的大小吗?
-
@LeGeniusII 能解释一下输出的第二行和第三行吗?你是怎么知道的?
-
@zacdav 不,不是唯一的值组合,是的,每列第一次出现并保持 data.table 的大小。
-
@YOLO 我不需要唯一的值组合,只需要每列中的唯一值。
标签: r data.table unique