リスト全体を 1 つのパターンと 1 つの置換で一致させて更新する方法の例を多数見つけましたが、現在探しているのは、単一のステートメントまたはループで複数のパターンと複数の置換に対してこれを行う方法です。
例:
> print(recs)
phonenumber amount
1 5345091 200
2 5386052 200
3 5413949 600
4 7420155 700
5 7992284 600
Company1 を /^5/、Company2 を /^7/ として、'service_provider' という新しい列を挿入したいと考えています。
これは、R の次の 2 行で実行できます。
recs$service_provider[grepl("^5", recs$phonenumber)]<-"Company1"
recs$service_provider[grepl("^7", recs$phonenumber)]<-"Company2"
それから私は得る:
phonenumber amount service_provider
1 5345091 200 Company1
2 5386052 200 Company1
3 5413949 600 Company1
4 7420155 700 Company2
5 7992284 600 Company2
国固有の情報を 1 つの場所に保持し、すべてのプログラミング ロジックを別の場所に保持することが容易になるように、grepl の個別のセットではなく、リストを提供したいと思います。
thisPhoneCompanies<-list(c('^5','Company1'),c('^7','Company2'))
他の言語では、電話会社リストで for ループを使用します。
For every row in thisPhoneCompanies
Add service provider to matched entries in recs (such as the grepl statement)
end loop
しかし、それはRでそれを行う方法ではないことを理解しています.