如何在R中对数据帧的最后一个值进行子集化?

我有一个大数据框,它的基本形式看起来像这样......

subject session 
1         1
2         1
3         1
1         2
2         2
3         2
1         3
2         3
3         3
1         4
2         4
3         4
1         5
2         5
3         5

如何仅对数据框的最后 2 个会话(即会话 4 和 5)进行子集化?

注意:会话总数可能会因场景而异,但我总是只想查看最后 2 个会话。

所以像这样的代码不足以满足所有场景......

data <- subset(data, session == c(4,5))

回答

对于多个元素,请使用%in%代替==。获取unique“会话”值并使用 返回最后两个值tail,创建%in%用于子集的逻辑表达式

subset(data, session %in% tail(unique(session), 2))

正如@Greg 在评论中提到的,如果它应该基于有序的“会话”并且列值未排序,则在应用之前sortunique元素执行tail

subset(data, session %in% tail(sort(unique(session)), 2))


以上是如何在R中对数据帧的最后一个值进行子集化?的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>