在數據幀文件DT
中,Var1
是唯一的。將ID
拆分爲Spl_1
& Spl_2
由前三位字符/數字組成。另外,DT
是group_by
的Spl_2
。因此,有四組:使用R如何在數據框的列中標識特定模式並替換感興趣的模式?
- KLM001
- OKT004
- MLO010
- AAA008
數據幀文件:
DT
ID Spl_1 Spl_2 Var1
1 001KLM001 001 KLM001 xx
2 001KLM001 001 KLM001 rr
3 044KLM001 044 KLM001 qwe
4 023OKT004 023 OKT004 sdf
5 023OKT004 023 OKT004 dfg
6 023OKT004 023 OKT004 ssg
7 023OKT004 023 OKT004 htj
8 023OKT004 023 OKT004 yjy
9 001OKT004 001 OKT004 wttt
10 054MLO010 054 MLO010 dg
11 023MLO011 023 MLO010 asd
12 001AAA008 001 AAA008 dggj
13 001AAA008 001 AAA008 sfe
14 001AAA008 001 AAA008 lkyt
15 056AAA008 056 AAA008 fghe
16 123AAA008 123 AAA008 wert
條件:
雖然Spl_2
是分組串相同,但Spl_1
是不同的。 (,例如對於KLM001
有兩個Spl_1
:001
& 044
)。
大部分分組叮咬有Spl_1
001
這是主要的興趣。除了Spl_1
001
之外的任何東西都是一種神器,需要被識別並由001
取代。
備註但是,如果組Spl_2
沒有任何Spl_1
與001
應保持完整。在這個例子中(DT
)它是MLO010
,它只有Spl_1
:054
& 023
。
意向:
基於分組Spl_2
,看Spl_1
,看看是否有其中001
。如果是這樣,則用001
替換non 001
Spl_1
,並將其與Spl_2
附加在一起,並將其放在名爲Cor_ID
的新列中,同時保留整個DT
。
預期的輸出:
ID Spl_1 Spl_2 Var1 Cor_ID
1 001KLM001 001 KLM001 xx 001KLM001
2 001KLM001 001 KLM001 rr 001KLM001
3 044KLM001 044 KLM001 qwe 001KLM001
4 023OKT004 023 OKT004 sdf 001OKT004
5 023OKT004 023 OKT004 dfg 001OKT004
6 023OKT004 023 OKT004 ssg 001OKT004
7 023OKT004 023 OKT004 htj 001OKT004
8 023OKT004 023 OKT004 yjy 001OKT004
9 001OKT004 001 OKT004 wttt 001OKT004
10 054MLO010 054 MLO010 dg 054MLO010
11 023MLO011 023 MLO010 asd 023MLO010
12 001AAA008 001 AAA008 dggj 001AAA008
13 001AAA008 001 AAA008 sfe 001AAA008
14 001AAA008 001 AAA008 lkyt 001AAA008
15 056AAA008 056 AAA008 fghe 001AAA008
16 123AAA008 123 AAA008 wert 001AAA008
我在r
新手。但我想我可以用gsub
來做到這一點。但是,我不知道究竟如何?
@Parfait,更正! tnx :) – Daniel
@AndrasDeak tnx,我讀懂了:) – Daniel