【问题标题】:Changing some values in data.frame by referring to other repetitive value [duplicate]通过引用其他重复值来更改data.frame中的某些值[重复]
【发布时间】:2021-12-31 20:46:42
【问题描述】:

我有如下数据框

name    value   etc1    etc2
A       9       1       X
A       10      1       X
A       11      1       X
B       2       1       Y
B       40      1       Y
B       50      1       Y
A       2       4       X
A       40      4       X
A       50      4       X

我需要将etc1中的值更改为不同的值,预期的输出是

name    value   etc1    etc2
A       9       1       X
A       10      2       X
A       11      3       X
B       2       1       Y
B       40      2       Y
B       50      3       Y
A       2       4       X
A       40      5       X
A       50      7       X

有什么提示吗?

【问题讨论】:

    标签: r duplicates


    【解决方案1】:

    您可以 group_by 命名并修改 etc1 使其从 1 开始运行:每个 name 的行数。

    library(dplyr)
    df %>% group_by(name) %>% mutate(etc1 = 1:n())
    
    # A tibble: 6 × 4
    # Groups:   name [2]
      name  value  etc1 etc2 
      <chr> <int> <int> <chr>
    1 A         9     1 X    
    2 A        10     2 X    
    3 A        11     3 X    
    4 B         2     1 Y    
    5 B        40     2 Y    
    6 B        50     3 Y    
    

    【讨论】:

      猜你喜欢
      • 2021-01-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-05-30
      • 2021-11-23
      • 2018-04-09
      • 2021-11-30
      • 2013-08-17
      相关资源
      最近更新 更多