r - 如何获取某个组的第一个值和后三个值
问题描述
目前,我有一个时间序列数据表,我必须获取每个组的第一个和最后一个条目。所以我使用下面的代码来做到这一点。
data[,c(.SD[1,] , .SD[2,]),by=c("id","status","group")]
现在,我想按分组取第一个和最后三个条目,而不是第一个和最后一个。
任何帮助表示赞赏。
解决方案
又快又脏
#sample data
DT <- data.table( id = 1:2, value = 1:100 )
#code
DT[, .SD[ c( 1:3, .N-2, .N-1, .N ) ], by = .(id) ]
#output
# id value
# 1: 1 1
# 2: 1 3
# 3: 1 5
# 4: 1 95
# 5: 1 97
# 6: 1 99
# 7: 2 2
# 8: 2 4
# 9: 2 6
# 10: 2 96
# 11: 2 98
# 12: 2 100
推荐阅读
- javascript - 在 ThreeJS 中首次添加几何
- zapier - 为空时替换一个值(ZAPIER - Javascript)
- css - 使用 CSS 将 AgGrid 控件的组标题中的文本垂直居中?
- applescript - 如何重命名启动盘?
- reactjs - Firebase v9 onAuthStateChanged 仅在初始化时触发
- ios - React-Native xcrun:错误:无法在 Xcode 13 中找到“仪器”
- amazon-web-services - AWS Media Convert 1401 错误:在 S3 存储桶上启用“阻止此账户的公共访问设置”时的授权错误
- java - java.lang.UnsupportedOperationException:com.my.project.dialect.CustomH2Dialect 不支持通过存储过程的结果集
- typescript-typings - 在打字稿中定义对象的类型
- flutter - 在 HERE Flutter SDK 上使用导航时运行时崩溃