Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/72.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R只保留最后一次提交?_R - Fatal编程技术网

R只保留最后一次提交?

R只保留最后一次提交?,r,R,我的数据如下所示: DF<- data.frame( id=c("A1","A2","A3","A1"), submission=c(1,1,1,2)) 为每个id保留最后一次提交的最佳方式是什么?即: DF<- data.frame( id=c("A2","A3","A1"), submission=c(1,1,2)) 谢谢 在base R中有几个选项: DF[!duplicated(DF$id, fromLast=TRUE),] # id submission # 2 A

我的数据如下所示:

DF<- data.frame( id=c("A1","A2","A3","A1"), submission=c(1,1,1,2))
为每个id保留最后一次提交的最佳方式是什么?即:

DF<- data.frame( id=c("A2","A3","A1"), submission=c(1,1,2))

谢谢

在base R中有几个选项:

DF[!duplicated(DF$id, fromLast=TRUE),]
#   id submission
# 2 A2          1
# 3 A3          1
# 4 A1          2

do.call(rbind, by(DF, DF$id, FUN=tail, 1))
#    id submission
# A1 A1          2
# A2 A2          1
# A3 A3          1

aggregate(submission ~ id, DF, tail, 1)
#   id submission
# 1 A1          2
# 2 A2          1
# 3 A3          1

下面是base R中的几个选项:

DF[!duplicated(DF$id, fromLast=TRUE),]
#   id submission
# 2 A2          1
# 3 A3          1
# 4 A1          2

do.call(rbind, by(DF, DF$id, FUN=tail, 1))
#    id submission
# A1 A1          2
# A2 A2          1
# A3 A3          1

aggregate(submission ~ id, DF, tail, 1)
#   id submission
# 1 A1          2
# 2 A2          1
# 3 A3          1

这比我想象的要容易。如果我理解正确,首先我需要通过提交订购数据帧?@Ignacio,是的。我本来以为这是一开始的情况。我发现有趣的另一个尽管不那么优雅的结构是:它比我想象的要简单。如果我理解正确,首先我需要通过提交订购数据帧?@Ignacio,是的。我本来以为这是一开始的情况。另一个我觉得有趣的,虽然不那么优雅的结构是:w