【发布时间】:2018-05-29 11:16:13
【问题描述】:
使用here中的答案,我已经成功地按组计算了多次最小值和最大值。这次它不起作用,我不明白为什么。这是一个可重现的例子。
example <- structure(
list(ID = 1:10,
date =
c("2005-05-09", "2006-09-18", "1996-06-14", "1997-01-06",
"1997-03-13", "1997-05-06", "1990-01-04", "1990-01-11",
"1989-12-28", "1989-12-28"),
name = c("a", "a", "a", "a", "a", "a", "b", "b", "b", "b")),
.Names = c("ID", "date", "name"),
class = c("data.table", "data.frame"),
row.names = c(NA, -10L))
example[example[, .I[which.min(date)], by=c("name")]$V1]
我期待的是这样的:
1996-06-14 a
1989-12-28 b
但是我得到一个空的数据表。为什么?
【问题讨论】:
-
example[, min(date), by=name] -
您的
date列是一个字符串。您需要先将其转换为IDate类,例如example[, date := as.IDate(date)]
标签: r data.table grouping