如何在R中的数据帧中向与其上方的行相同的字符串添加计数?

时间:2019-04-24 19:50:08

标签: r string match

我在R的数据框中有一列,其中每一行都包含一个字符串。但是,尽管它们都是按顺序复制的,但其中许多仍被复制,因此具有相同字符串的行被分组在一起。我想创建一个新列,向该字符串添加计数。

我对R还是比较陌生,不知道从哪里开始,所以任何建议都会有所帮助。谢谢!

示例:


String

apple
apple
apple
orange
orange
banana
banana
banana
banana
banana

我希望第二列看起来像这样:


String-n

apple-1
apple-2
apple-3
orange-1
orange-2
banana-1
banana-2
banana-3
banana-4
banana-5

1 个答案:

答案 0 :(得分:1)

这是一个简单的dplyr解决方案:

library(dplyr)

df %>% 
  group_by(String) %>% 
  mutate(`String-n` = paste0(String, "-", row_number())) %>% 
  ungroup()
## A tibble: 10 x 2
#   String `String-n`
#   <fct>  <chr>     
# 1 apple  apple-1   
# 2 apple  apple-2   
# 3 apple  apple-3   
# 4 orange orange-1  
# 5 orange orange-2  
# 6 banana banana-1  
# 7 banana banana-2  
# 8 banana banana-3  
# 9 banana banana-4  
#10 banana banana-5