首页 > 解决方案 > 在 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

标签: rindexing

解决方案


这是一种选择

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

推荐阅读