在 r 中应用索引



>我有数据索引。我希望索引中的第一个值应用于该索引中的所有其他值。下面是我举的一个例子。

index<-c(1,1,1,2,2,2,2,2,3,3)
animal<-c("cat","dog","lion","chicken","frog","goat","sheep","elephant","tiger", "bear")
df<-as.data.frame(cbind(index,animal))
index   animal
1      1      cat
2      1      dog
3      1     lion
4      2  chicken
5      2     frog
6      2     goat
7      2    sheep
8      2 elephant
9      3    tiger
10     3     bear

结果应如下所示:

index   animal
1      1      cat
2      1      cat
3      1      cat
4      2  chicken
5      2  chicken
6      2  chicken
7      2  chicken
8      2  chicken
9      3    tiger
10     3    tiger

这是一个选项

df$animal <- with(df, animal[cummax(seq_along(index) * !duplicated(index))])

最新更新