【问题标题】:Replace values based on ID's for determinate columns根据确定列的 ID 替换值
【发布时间】:2022-07-06 03:08:42
【问题描述】:

我有这种情况:

ID          n  post    date    el    a   b   c   d
100_left    4   50  10/11/2020  y   190 5.41 4  300
100_right   4   50  10/11/2020  n       5.4  5  200
101_left    4   50  10/11/2020  y   180 5.49 6  360
101_right   4   50  10/11/2020  n       5.48 6  180
102_left    4   50  10/11/2020  y   190 5.5  3  300
102_right   4   50  10/11/2020  n       5.46 5  200
103_left    4   50  10/11/2020  y   190 5.39 3  170
103_right   4   50  10/11/2020  n       5.44 3  360

我想为n_right (ID) 使用相同的n_left 值,但仅用于从a 到d 的列。像这样:

ID          n  post   date     el   a    b   c   d
100_left    4   50  10/11/2020  y   190 5.41 4  300
100_right   4   50  10/11/2020  n   190 5.41 4  300
101_left    4   50  10/11/2020  y   180 5.49 6  360
101_right   4   50  10/11/2020  n   180 5.49 6  360
102_left    4   50  10/11/2020  y   190 5.5  3  300
102_right   4   50  10/11/2020  n   190 5.5  3  300
103_left    4   50  10/11/2020  y   190 5.39 3  170
103_right   4   50  10/11/2020  n   190 5.39 3  170

抱歉没有放代码,但我不知道从哪里开始。 OBS:这只是一个示例,我的原始数据集要大得多。

【问题讨论】:

    标签: r dplyr replace dataset


    【解决方案1】:

    我们可能会使用

    library(dplyr)
    df1 %>% group_by(grp = str_remove(ID, "_.*")) %>% mutate(across(a:d, ~ .[el == 'y'])) %>% ungroup %>% select(-grp)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-05-14
      • 2021-09-23
      • 2021-06-08
      • 2021-02-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多