【发布时间】:2012-05-15 12:15:33
【问题描述】:
给定一个排序键,是否有一个 data.table 快捷方式可以复制 SAS 和 SPSS 中的 first 和 last 功能?
下面的行人方法标记了一组的第一个记录。
鉴于 data.table 的优雅(我正在慢慢熟悉它),我假设有一个使用自连接和mult 的快捷方式,但我仍在尝试弄清楚。
示例如下:
require(data.table)
set.seed(123)
n <- 17
DT <- data.table(x=sample(letters[1:3],n,replace=T),
y=sample(LETTERS[1:3],n,replace=T))
sortkey <- c("x","y")
setkeyv(DT,sortkey)
key <- paste(DT$x,DT$y,sep="-")
nw <- c( T , key[2:n]!=key[1:(n-1)] )
DT$first <- 1*nw
DT
【问题讨论】:
-
这里有很好的答案,包括 data.table 解决方案:stats.stackexchange.com/questions/7884/…
-
我认为 M.Dimo 特别想标记组中的第一个和最后一个,而不是提取它们。您指向的链接以及 OP 所指的
mult方法显示了如何提取,而不是label。
标签: r data.table