【发布时间】:2019-11-23 17:17:14
【问题描述】:
您好,这是我在堆栈溢出中的第一篇文章,如果格式不正确并且之前已被问过,我深表歉意 - 我无法找到解决方案。
我正在尝试根据另一列的某些条件替换一列中的某些字符串。我有以下数据框:
> df
# A tibble: 14 x 3
Group1 Group2 Group3
<chr> <chr> <chr>
1 MOBILES MOBILES - CORE IOT
2 MOBILES MOBILES - CORE IOT_Vas
3 MOBILES MOBILES - CORE IOT_Vas
4 Data & IP Data & IP IP WAN
5 Data & IP Data & IP Internet Solutions
6 Data & IP Data & IP Internet Solutions
7 MOBILES IOT M2M
8 MOBILES IOT M2M
9 MOBILES IOT M2M VAS
10 MOBILES IOT M2M VAS
11 Cloud Services Cloud Services Professional Services
12 Cloud Services Cloud Services Professional Services
13 Mobiles MOBILES - CORE MOBILES - CORE
14 Mobiles MOBILES - Voice MOBILES - Voice
我试图实现的是,如果“Group 3”包含字符串 IOT,则“Group 1”中的值 = IOT,如果“Group 3”包含 M2M,则值“Group 1”=M2M。否则第 1 组中的值保持不变。
我对堆栈溢出和 R tidyverse 比较陌生,但我无法找到解决我的问题的方法。我已经尝试过 str_replace 和 mutate_at 但是当我基于 2 个不同的元素进行替换时,我无法弄清楚如何做到这一点。
生成的数据框应如下所示:
> df
# A tibble: 14 x 3
Group1 Group2 Group3
<chr> <chr> <chr>
1 IOT MOBILES - CORE IOT
2 IOT MOBILES - CORE IOT
3 IOT MOBILES - CORE IOT_Vas
4 Data & IP Data & IP IP WAN
5 Data & IP Data & IP Internet Solutions
6 Data & IP Data & IP Internet Solutions
7 M2M IOT M2M
8 M2M IOT M2M
9 M2M IOT M2M VAS
10 M2M IOT M2M VAS
11 Cloud Services Cloud Services Professional Services
12 Cloud Services Cloud Services Professional Services
13 Mobiles MOBILES - CORE MOBILES - CORE
14 Mobiles MOBILES - Voice MOBILES - Voice
【问题讨论】: