{"id":42435,"date":"2026-06-10T14:02:36","date_gmt":"2026-06-10T11:02:36","guid":{"rendered":"https:\/\/fatihsoysal.com\/blog\/rda-metin-manipulasyonu-sub-ve-gsub-fonksiyonlari\/"},"modified":"2026-06-10T14:02:55","modified_gmt":"2026-06-10T11:02:55","slug":"rda-metin-manipulasyonu-sub-ve-gsub-fonksiyonlari","status":"publish","type":"post","link":"https:\/\/fatihsoysal.com\/blog\/rda-metin-manipulasyonu-sub-ve-gsub-fonksiyonlari\/","title":{"rendered":"R&#8217;da Metin Manip\u00fclasyonu: sub() ve gsub() Fonksiyonlar\u0131"},"content":{"rendered":"<h2>R&#8217;da Metin Manip\u00fclasyonu: sub() ve gsub() Fonksiyonlar\u0131<\/h2>\n<p>Veri analizi ve biliminde, metin verileriyle \u00e7al\u0131\u015fmak ka\u00e7\u0131n\u0131lmaz bir durumdur. \u00c7o\u011fu zaman, ham metin verileri do\u011frudan analiz i\u00e7in uygun de\u011fildir. Bu verilerin temizlenmesi, d\u00f6n\u00fc\u015ft\u00fcr\u00fclmesi ve belirli desenlere g\u00f6re de\u011fi\u015ftirilmesi gerekebilir. \u0130\u015fte tam bu noktada R programlama dilinin sundu\u011fu g\u00fc\u00e7l\u00fc metin i\u015fleme fonksiyonlar\u0131 devreye girer. Bu fonksiyonlardan en \u00f6nemlileri ise <code class=\"language-\">sub()<\/code> ve <code class=\"language-\">gsub()<\/code> fonksiyonlar\u0131d\u0131r. Bu iki fonksiyon, metin i\u00e7indeki belirli karakter dizilerini (desenleri) bularak bunlar\u0131 ba\u015fka karakter dizileriyle de\u011fi\u015ftirmek i\u00e7in kullan\u0131l\u0131r. Aralar\u0131ndaki temel fark, <code class=\"language-\">sub()<\/code> fonksiyonunun sadece ilk e\u015fle\u015fmeyi de\u011fi\u015ftirirken, <code class=\"language-\">gsub()<\/code> fonksiyonunun metin i\u00e7indeki t\u00fcm e\u015fle\u015fmeleri de\u011fi\u015ftirmesidir. Bu makalede, <code class=\"language-\">sub()<\/code> ve <code class=\"language-\">gsub()<\/code> fonksiyonlar\u0131n\u0131n ne oldu\u011funu, nas\u0131l kullan\u0131ld\u0131\u011f\u0131n\u0131, farkl\u0131 senaryolarda nas\u0131l uyguland\u0131\u011f\u0131n\u0131 ve ileri d\u00fczey tekniklerini detayl\u0131 bir \u015fekilde inceleyece\u011fiz. Amac\u0131m\u0131z, R&#8217;da metin verisi manip\u00fclasyonu konusunda kendinizi g\u00fcvende hissetmenizi sa\u011flamak ve bu g\u00fc\u00e7l\u00fc ara\u00e7lar\u0131 etkin bir \u015fekilde kullanman\u0131za yard\u0131mc\u0131 olmakt\u0131r.<\/p>\n<h3>Temel Kavramlar: Desen E\u015fle\u015ftirme ve Metin De\u011fi\u015ftirme<\/h3>\n<p>R&#8217;da metin manip\u00fclasyonunun temelini desen e\u015fle\u015ftirme (pattern matching) olu\u015fturur. Bir deseni, arad\u0131\u011f\u0131m\u0131z belirli bir karakter dizisi veya daha karma\u015f\u0131k bir kural olarak d\u00fc\u015f\u00fcnebiliriz. Bu desenler, basit kelimelerden \u00f6zel karakterlere, hatta belirli bir yap\u0131ya sahip dizilere kadar her \u015feyi kapsayabilir. <code class=\"language-\">sub()<\/code> ve <code class=\"language-\">gsub()<\/code> fonksiyonlar\u0131, bu desenleri tan\u0131mlamak i\u00e7in genellikle &#8220;d\u00fczenli ifadeler&#8221; (regular expressions veya regex) ad\u0131 verilen g\u00fc\u00e7l\u00fc bir s\u00f6z dizimi kullan\u0131r. D\u00fczenli ifadeler, metin i\u00e7inde karma\u015f\u0131k arama ve e\u015fle\u015ftirme i\u015flemleri yapmam\u0131z\u0131 sa\u011flayan \u00f6zel karakterler ve semboller dizisidir. \u00d6rne\u011fin, bir say\u0131y\u0131 temsil eden bir deseni veya bir e-posta adresinin yap\u0131s\u0131n\u0131 tan\u0131mlayan bir deseni d\u00fczenli ifadelerle olu\u015fturabiliriz.<\/p>\n<p>Bu desenleri tan\u0131mlad\u0131ktan sonra, <code class=\"language-\">sub()<\/code> ve <code class=\"language-\">gsub()<\/code> fonksiyonlar\u0131 bu desenleri metin i\u00e7inde arar. Bulunan her e\u015fle\u015fme i\u00e7in, fonksiyon bu deseni belirtti\u011fimiz ba\u015fka bir karakter dizisiyle de\u011fi\u015ftirir. Bu de\u011fi\u015ftirme i\u015flemi, verilerimizi temizlemek, standartla\u015ft\u0131rmak, belirli bilgileri \u00e7\u0131karmak veya metin verilerini daha kullan\u0131\u015fl\u0131 bir formata d\u00f6n\u00fc\u015ft\u00fcrmek i\u00e7in kritik \u00f6neme sahiptir. \u00d6rne\u011fin, bir veri setindeki t\u00fcm &#8220;ABD&#8221; k\u0131saltmalar\u0131n\u0131 &#8220;Amerika Birle\u015fik Devletleri&#8221; olarak de\u011fi\u015ftirmek veya bir metindeki t\u00fcm say\u0131sal de\u011ferleri maskelemek bu fonksiyonlarla kolayca yap\u0131labilir. Bu fonksiyonlar\u0131n do\u011fru anla\u015f\u0131lmas\u0131 ve etkin kullan\u0131m\u0131, veri analizi s\u00fcrecinde zamandan tasarruf etmemizi ve daha do\u011fru sonu\u00e7lar elde etmemizi sa\u011flar.<\/p>\n<h3>sub() Fonksiyonu: \u0130lk E\u015fle\u015fmeyi De\u011fi\u015ftirme<\/h3>\n<p><code class=\"language-\">sub()<\/code> fonksiyonu, R&#8217;da metin manip\u00fclasyonunun temel ta\u015flar\u0131ndan biridir ve ad\u0131ndan da anla\u015f\u0131laca\u011f\u0131 gibi, bir metin i\u00e7indeki bir desenin yaln\u0131zca ilk e\u015fle\u015fmesini bulup onu ba\u015fka bir karakter dizisiyle de\u011fi\u015ftirir. Bu fonksiyonun s\u00f6z dizimi genellikle \u015fu \u015fekildedir:<\/p>\n<pre class=\"language-R\"><code>sub(pattern, replacement, x, ignore.case = FALSE, perl = FALSE, fixed = FALSE, useBytes = FALSE)<\/code><\/pre>\n<p>Burada:<br \/>\n&#8211; <code class=\"language-\">pattern<\/code>: Aranacak desen (d\u00fczenli ifade veya sabit metin).<br \/>\n&#8211; <code class=\"language-\">replacement<\/code>: <code class=\"language-\">pattern<\/code> ile e\u015fle\u015fen k\u0131sm\u0131n yerine konulacak karakter dizisi.<br \/>\n&#8211; <code class=\"language-\">x<\/code>: \u0130\u015flem yap\u0131lacak karakter vekt\u00f6r\u00fc veya karakter dizisi.<br \/>\n&#8211; <code class=\"language-\">ignore.case<\/code>: E\u015fle\u015ftirmenin b\u00fcy\u00fck\/k\u00fc\u00e7\u00fck harfe duyarl\u0131 olup olmayaca\u011f\u0131n\u0131 belirten mant\u0131ksal bir de\u011fer (varsay\u0131lan <code class=\"language-\">FALSE<\/code>).<br \/>\n&#8211; <code class=\"language-\">perl<\/code>: Perl uyumlu d\u00fczenli ifadelerin kullan\u0131l\u0131p kullan\u0131lmayaca\u011f\u0131n\u0131 belirten mant\u0131ksal bir de\u011fer (varsay\u0131lan <code class=\"language-\">FALSE<\/code>).<br \/>\n&#8211; <code class=\"language-\">fixed<\/code>: <code class=\"language-\">pattern<\/code>&#8216;\u0131n d\u00fczenli ifade olarak de\u011fil, sabit bir metin olarak ele al\u0131nmas\u0131n\u0131 sa\u011flayan mant\u0131ksal bir de\u011fer (varsay\u0131lan <code class=\"language-\">FALSE<\/code>). Bu, d\u00fczenli ifadelerin performans\u0131n\u0131 art\u0131rabilir e\u011fer sadece sabit bir metin ar\u0131yorsan\u0131z.<br \/>\n&#8211; <code class=\"language-\">useBytes<\/code>: E\u015fle\u015ftirmenin bayt tabanl\u0131 olup olmayaca\u011f\u0131n\u0131 belirten mant\u0131ksal bir de\u011fer.<\/p>\n<p><code class=\"language-\">sub()<\/code> fonksiyonunun en \u00f6nemli \u00f6zelli\u011fi, yaln\u0131zca ilk e\u015fle\u015fmeyi de\u011fi\u015ftirmesidir. Bu, metin i\u00e7inde birden fazla ayn\u0131 desene sahip oldu\u011fumuzda ve sadece ilkini de\u011fi\u015ftirmek istedi\u011fimizde olduk\u00e7a kullan\u0131\u015fl\u0131d\u0131r. \u00d6rne\u011fin, bir paragrafta ge\u00e7en ilk &#8220;R&#8221; kelimesini &#8220;R Programlama Dili&#8221; ile de\u011fi\u015ftirmek istedi\u011fimizde <code class=\"language-\">sub()<\/code> fonksiyonunu kullanabiliriz. E\u011fer metin i\u00e7inde birden fazla &#8220;R&#8221; varsa, sadece ilk bulunan &#8220;R&#8221; de\u011fi\u015ftirilecektir. Bu, belirli bir \u00f6\u011fenin ilk \u00f6rne\u011fini hedef almam\u0131z gerekti\u011finde \u00f6nemli bir avantaj sa\u011flar.<\/p>\n<p>\u00d6rnek olarak, a\u015fa\u011f\u0131daki R kodunu inceleyelim:<\/p>\n<pre class=\"language-R\"><code>metin &lt;- &quot;Bug\u00fcn R ile veri analizi yap\u0131yoruz. R harika bir dil.&quot;\nyeni_metin &lt;- sub(&quot;R&quot;, &quot;RStudio&quot;, metin)\nprint(yeni_metin)<\/code><\/pre>\n<p>Bu kod \u00e7al\u0131\u015ft\u0131r\u0131ld\u0131\u011f\u0131nda \u00e7\u0131kt\u0131 \u015fu \u015fekilde olacakt\u0131r:<\/p>\n<pre class=\"language-\"><code>[1] &quot;Bug\u00fcn RStudio ile veri analizi yap\u0131yoruz. R harika bir dil.&quot;<\/code><\/pre>\n<p>G\u00f6rd\u00fc\u011f\u00fcn\u00fcz gibi, metin i\u00e7indeki ilk &#8220;R&#8221; &#8220;RStudio&#8221; ile de\u011fi\u015ftirildi, ancak ikinci &#8220;R&#8221; oldu\u011fu gibi kald\u0131. Bu, <code class=\"language-\">sub()<\/code> fonksiyonunun temel \u00e7al\u0131\u015fma prensibini net bir \u015fekilde g\u00f6stermektedir. <code class=\"language-\">sub()<\/code> fonksiyonu, metin temizleme, belirli \u00f6\u011felerin ilk \u00f6rne\u011fini g\u00fcncelleme veya metin i\u00e7indeki ilk tekrar eden deseni hedefleme gibi g\u00f6revler i\u00e7in idealdir. Bu fonksiyonun do\u011fru kullan\u0131m\u0131, veri setlerindeki tutars\u0131zl\u0131klar\u0131 gidermede ve metinleri istenen formata getirmede \u00f6nemli bir rol oynar.<\/p>\n<h3>gsub() Fonksiyonu: T\u00fcm E\u015fle\u015fmeleri De\u011fi\u015ftirme<\/h3>\n<p><code class=\"language-\">gsub()<\/code> fonksiyonu, <code class=\"language-\">sub()<\/code> fonksiyonunun aksine, bir metin i\u00e7indeki bir desenin t\u00fcm e\u015fle\u015fmelerini bulur ve bunlar\u0131 ba\u015fka bir karakter dizisiyle de\u011fi\u015ftirir. Bu, metin verilerinde toplu de\u011fi\u015fiklikler yapmak istedi\u011fimizde en s\u0131k kulland\u0131\u011f\u0131m\u0131z fonksiyondur. <code class=\"language-\">gsub()<\/code> fonksiyonunun s\u00f6z dizimi de <code class=\"language-\">sub()<\/code> fonksiyonuna olduk\u00e7a benzerdir:<\/p>\n<pre class=\"language-R\"><code>gsub(pattern, replacement, x, ignore.case = FALSE, perl = FALSE, fixed = FALSE, useBytes = FALSE)<\/code><\/pre>\n<p>Parametreler <code class=\"language-\">sub()<\/code> fonksiyonundaki ile ayn\u0131d\u0131r. Temel fark, <code class=\"language-\">gsub()<\/code> fonksiyonunun metin i\u00e7indeki t\u00fcm uygun desenleri bulup de\u011fi\u015ftirmesidir. Bu, tekrarlayan \u00f6\u011feleri temizlemek, t\u00fcm k\u0131saltmalar\u0131 a\u00e7mak veya belirli bir deseni tamamen kald\u0131rmak gibi i\u015flemler i\u00e7in <code class=\"language-\">gsub()<\/code> fonksiyonunu vazge\u00e7ilmez k\u0131lar. \u00d6rne\u011fin, bir metindeki t\u00fcm bo\u015fluklar\u0131 kald\u0131rmak veya t\u00fcm noktalama i\u015faretlerini silmek istedi\u011fimizde <code class=\"language-\">gsub()<\/code> fonksiyonu en etkili \u00e7\u00f6z\u00fcmd\u00fcr.<\/p>\n<p>Yukar\u0131daki <code class=\"language-\">sub()<\/code> \u00f6rne\u011fini <code class=\"language-\">gsub()<\/code> ile tekrar ele alal\u0131m:<\/p>\n<pre class=\"language-R\"><code>metin &lt;- &quot;Bug\u00fcn R ile veri analizi yap\u0131yoruz. R harika bir dil.&quot;\nyeni_metin_tum &lt;- gsub(&quot;R&quot;, &quot;RStudio&quot;, metin)\nprint(yeni_metin_tum)<\/code><\/pre>\n<p>Bu kod \u00e7al\u0131\u015ft\u0131r\u0131ld\u0131\u011f\u0131nda \u00e7\u0131kt\u0131 \u015fu \u015fekilde olacakt\u0131r:<\/p>\n<pre class=\"language-\"><code>[1] &quot;Bug\u00fcn RStudio ile veri analizi yap\u0131yoruz. RStudio harika bir dil.&quot;<\/code><\/pre>\n<p>Bu \u00f6rnekte, metin i\u00e7indeki her iki &#8220;R&#8221; de &#8220;RStudio&#8221; ile de\u011fi\u015ftirildi. Bu, <code class=\"language-\">gsub()<\/code> fonksiyonunun t\u00fcm e\u015fle\u015fmeleri bulma ve de\u011fi\u015ftirme yetene\u011fini a\u00e7\u0131k\u00e7a g\u00f6stermektedir. <code class=\"language-\">gsub()<\/code> fonksiyonu, veri temizleme, metin standartla\u015ft\u0131rma ve toplu d\u00f6n\u00fc\u015f\u00fcmler i\u00e7in son derece g\u00fc\u00e7l\u00fc bir ara\u00e7t\u0131r. \u00d6rne\u011fin, bir metindeki t\u00fcm say\u0131y\u0131 i\u00e7eren kelimeleri &#8220;SAYI&#8221; ile de\u011fi\u015ftirmek istedi\u011finizde <code class=\"language-\">gsub()<\/code> fonksiyonunu kullanabilirsiniz. Bu, metin verilerinden say\u0131sal bilgileri soyutlamak veya anonimle\u015ftirmek i\u00e7in kullan\u0131\u015fl\u0131 olabilir. Ayr\u0131ca, web kaz\u0131ma (web scraping) gibi senaryolarda, HTML etiketlerini temizlemek veya belirli bir URL yap\u0131s\u0131n\u0131 standartla\u015ft\u0131rmak i\u00e7in de <code class=\"language-\">gsub()<\/code> fonksiyonu s\u0131k\u00e7a kullan\u0131l\u0131r.<\/p>\n<p><strong># D\u00fczenli \u0130fadeler (Regular Expressions) ile G\u00fc\u00e7lendirme<\/strong><\/p>\n<p><code class=\"language-\">sub()<\/code> ve <code class=\"language-\">gsub()<\/code> fonksiyonlar\u0131n\u0131n ger\u00e7ek g\u00fcc\u00fc, d\u00fczenli ifadelerle (regular expressions) birle\u015fti\u011finde ortaya \u00e7\u0131kar. D\u00fczenli ifadeler, metin i\u00e7inde arama ve e\u015fle\u015ftirme i\u00e7in esnek ve g\u00fc\u00e7l\u00fc bir dil sunar. Bu ifadeler, sadece sabit karakter dizilerini de\u011fil, ayn\u0131 zamanda belirli kurallara uyan karakter gruplar\u0131n\u0131 da tan\u0131mlamam\u0131za olanak tan\u0131r. D\u00fczenli ifadelerle metin manip\u00fclasyonu yapmak, daha karma\u015f\u0131k ve hassas veri temizleme ve d\u00f6n\u00fc\u015ft\u00fcrme i\u015flemlerini m\u00fcmk\u00fcn k\u0131lar.<\/p>\n<p>\u0130\u015fte yayg\u0131n olarak kullan\u0131lan baz\u0131 d\u00fczenli ifade karakterleri ve anlamlar\u0131:<\/p>\n<p>*   <code class=\"language-\">.<\/code>: Herhangi bir tek karakter (yeni sat\u0131r hari\u00e7).<br \/>\n*   <code class=\"language-\">*<\/code>: Kendisinden \u00f6nceki \u00f6\u011fenin s\u0131f\u0131r veya daha fazla tekrar\u0131.<br \/>\n*   <code class=\"language-\">+<\/code>: Kendisinden \u00f6nceki \u00f6\u011fenin bir veya daha fazla tekrar\u0131.<br \/>\n*   <code class=\"language-\">?<\/code>: Kendisinden \u00f6nceki \u00f6\u011fenin s\u0131f\u0131r veya bir tekrar\u0131.<br \/>\n*   <code class=\"language-\">^<\/code>: Dizinin ba\u015flang\u0131c\u0131.<br \/>\n*   <code class=\"language-\">$<\/code>: Dizinin sonu.<br \/>\n*   <code class=\"language-\">[abc]<\/code>: &#8216;a&#8217;, &#8216;b&#8217; veya &#8216;c&#8217; karakterlerinden herhangi biri.<br \/>\n*   <code class=\"language-\">[^abc]<\/code>: &#8216;a&#8217;, &#8216;b&#8217; veya &#8216;c&#8217; d\u0131\u015f\u0131ndaki herhangi bir karakter.<br \/>\n*   <code class=\"language-\">[a-z]<\/code>: K\u00fc\u00e7\u00fck harf &#8216;a&#8217; ile &#8216;z&#8217; aras\u0131ndaki herhangi bir karakter.<br \/>\n*   <code class=\"language-\">\\d<\/code>: Herhangi bir rakam (0-9).<br \/>\n*   <code class=\"language-\">\\w<\/code>: Herhangi bir kelime karakteri (harf, rakam veya alt \u00e7izgi).<br \/>\n*   <code class=\"language-\">\\s<\/code>: Herhangi bir bo\u015fluk karakteri (bo\u015fluk, sekme, yeni sat\u0131r vb.).<br \/>\n*   <code class=\"language-\">|<\/code>: Veya operat\u00f6r\u00fc (\u00f6rne\u011fin, <code class=\"language-\">a|b<\/code> &#8216;a&#8217; veya &#8216;b&#8217; anlam\u0131na gelir).<\/p>\n<p>Bu karakterleri kullanarak daha karma\u015f\u0131k desenler olu\u015fturabiliriz. \u00d6rne\u011fin, bir e-posta adresini e\u015fle\u015ftirmek i\u00e7in <code class=\"language-\">\\w+@\\w+\\.\\w+<\/code> gibi bir desen kullanabiliriz. Bu desen, bir veya daha fazla kelime karakteri, ard\u0131ndan bir &#8216;@&#8217; i\u015fareti, ard\u0131ndan bir veya daha fazla kelime karakteri, ard\u0131ndan bir nokta ve son olarak bir veya daha fazla kelime karakteri anlam\u0131na gelir.<\/p>\n<p>\u0130\u015fte <code class=\"language-\">gsub()<\/code> ve d\u00fczenli ifadelerin birlikte kullan\u0131m\u0131na bir \u00f6rnek:<\/p>\n<pre class=\"language-R\"><code>metin_listesi &lt;- c(&quot;siparis_no_123&quot;, &quot;urun_id_456&quot;, &quot;fatura_no_789&quot;, &quot;musteri_kodu_abc&quot;)\n# Say\u0131sal k\u0131s\u0131mlar\u0131 &quot;ID&quot; ile de\u011fi\u015ftirelim\nyeni_metin_listesi &lt;- gsub(&quot;_\\\\d+&quot;, &quot;_ID&quot;, metin_listesi)\nprint(yeni_metin_listesi)<\/code><\/pre>\n<p>Bu kod \u00e7al\u0131\u015ft\u0131r\u0131ld\u0131\u011f\u0131nda \u00e7\u0131kt\u0131 \u015fu \u015fekilde olacakt\u0131r:<\/p>\n<pre class=\"language-\"><code>[1] &quot;siparis_no_ID&quot; &quot;urun_id_ID&quot;    &quot;fatura_no_ID&quot;  &quot;musteri_kodu_abc&quot;<\/code><\/pre>\n<p>Bu \u00f6rnekte, <code class=\"language-\">_\\\\d+<\/code> deseni, bir alt \u00e7izgi <code class=\"language-\">_<\/code> ve ard\u0131ndan bir veya daha fazla rakam <code class=\"language-\">\\\\d+<\/code> ile e\u015fle\u015fir. <code class=\"language-\">gsub()<\/code> fonksiyonu bu deseni bulur ve <code class=\"language-\">_ID<\/code> ile de\u011fi\u015ftirir. &#8220;musteri_kodu_abc&#8221; \u00f6rne\u011finde rakam olmad\u0131\u011f\u0131 i\u00e7in de\u011fi\u015fiklik olmaz. D\u00fczenli ifadeler, metin verilerindeki belirli kal\u0131plar\u0131 yakalamak ve de\u011fi\u015ftirmek i\u00e7in inan\u0131lmaz bir esneklik sunar. Bu, veri temizleme ve d\u00f6n\u00fc\u015f\u00fcm g\u00f6revlerini otomatikle\u015ftirmede kritik bir rol oynar.<\/p>\n<p><strong># Vaka Analizi: Ger\u00e7ek D\u00fcnya Senaryolar\u0131<\/strong><\/p>\n<p><code class=\"language-\">sub()<\/code> ve <code class=\"language-\">gsub()<\/code> fonksiyonlar\u0131n\u0131n pratik uygulamalar\u0131n\u0131 daha iyi anlamak i\u00e7in birka\u00e7 ger\u00e7ek d\u00fcnya senaryosuna g\u00f6z atal\u0131m. Bu senaryolar, bu fonksiyonlar\u0131n veri analizi i\u015f ak\u0131\u015flar\u0131nda nas\u0131l de\u011ferli ara\u00e7lar olabilece\u011fini g\u00f6sterecektir.<\/p>\n<p><strong>Senaryo 1: Telefon Numaralar\u0131n\u0131 Standardize Etme<\/strong><\/p>\n<p>Farkl\u0131 formatlarda girilmi\u015f telefon numaralar\u0131n\u0131 tek bir standarda getirmek yayg\u0131n bir veri temizleme i\u015flemidir. \u00d6rne\u011fin, bir veri setinde <code class=\"language-\">(123) 456-7890<\/code>, <code class=\"language-\">123-456-7890<\/code> ve <code class=\"language-\">1234567890<\/code> gibi farkl\u0131 formatlarda telefon numaralar\u0131 olabilir. Bu numaralar\u0131 hep ayn\u0131 formatta (\u00f6rne\u011fin, <code class=\"language-\">1234567890<\/code>) tutmak i\u00e7in <code class=\"language-\">gsub()<\/code> fonksiyonunu kullanabiliriz.<\/p>\n<pre class=\"language-R\"><code>telefon_numaralari &lt;- c(&quot;(123) 456-7890&quot;, &quot;123-456-7890&quot;, &quot;1234567890&quot;, &quot;+1 123 456 7890&quot;)\n\n# T\u00fcm parantezleri, bo\u015fluklar\u0131 ve tireleri kald\u0131r\ntemiz_telefonlar &lt;- gsub(&quot;[()\\\\s-]&quot;, &quot;&quot;, telefon_numaralari)\n\n# \u0130ste\u011fe ba\u011fl\u0131 olarak, ba\u015f\u0131na '1' ekleyelim (\u00fclke kodu varsay\u0131m\u0131yla)\n# Bu k\u0131s\u0131m, daha karma\u015f\u0131k mant\u0131k gerektirebilir, ancak basit bir \u00f6rnek verelim:\n# E\u011fer temizlenen numara 10 haneliyse ve ba\u015f\u0131nda '1' yoksa ekleyelim.\n# Bu, daha geli\u015fmi\u015f d\u00fczenli ifadeler veya R'daki ko\u015fullu ifadelerle yap\u0131labilir.\n# Basitlik ad\u0131na, sadece parantez, bo\u015fluk ve tireleri kald\u0131r\u0131yoruz.\n\nprint(temiz_telefonlar)<\/code><\/pre>\n<p>Bu kod \u00e7al\u0131\u015ft\u0131r\u0131ld\u0131\u011f\u0131nda \u00e7\u0131kt\u0131 \u015fu \u015fekilde olacakt\u0131r:<\/p>\n<pre class=\"language-\"><code>[1] &quot;1234567890&quot; &quot;1234567890&quot; &quot;1234567890&quot; &quot;+11234567890&quot;<\/code><\/pre>\n<p>Bu \u00f6rnekte, <code class=\"language-\">[()\\\\s-]<\/code> d\u00fczenli ifadesi parantezleri <code class=\"language-\">()<\/code>, bo\u015fluklar\u0131 <code class=\"language-\">\\\\s<\/code> ve tireleri <code class=\"language-\">-<\/code> karakterlerini e\u015fle\u015ftirir. <code class=\"language-\">gsub()<\/code> fonksiyonu bu karakterleri bo\u015f bir dizeyle (<code class=\"language-\">\"\"<\/code>) de\u011fi\u015ftirerek telefon numaralar\u0131n\u0131 standardize eder.<\/p>\n<p><strong>Senaryo 2: URL&#8217;lerden Alan Adlar\u0131n\u0131 \u00c7\u0131karma<\/strong><\/p>\n<p>Bir web sitesinden toplanan verilerde URL&#8217;ler bulunabilir ve bu URL&#8217;lerden sadece alan adlar\u0131n\u0131 (domain names) \u00e7\u0131karmak isteyebiliriz. \u00d6rne\u011fin, <code class=\"language-\">https:\/\/www.example.com\/path\/to\/page<\/code> URL&#8217;sinden <code class=\"language-\">example.com<\/code>&#8216;u \u00e7\u0131karmak.<\/p>\n<pre class=\"language-R\"><code>url_listesi &lt;- c(&quot;https:\/\/www.example.com\/path\/to\/page&quot;, &quot;http:\/\/subdomain.anothersite.org\/index.html&quot;, &quot;ftp:\/\/ftp.myserver.net&quot;)\n\n# URL'nin ba\u015f\u0131ndaki &quot;http:\/\/&quot;, &quot;https:\/\/&quot;, &quot;ftp:\/\/&quot; ve &quot;www.&quot; k\u0131s\u0131mlar\u0131n\u0131 kald\u0131r\n# Ard\u0131ndan ilk e\u011fik \u00e7izgiye kadar olan k\u0131sm\u0131 al\nalan_adlari &lt;- gsub(&quot;^(https?|ftp):\/\/(www\\\\.)?&quot;, &quot;&quot;, url_listesi)\nalan_adlari &lt;- gsub(&quot;\/.*$&quot;, &quot;&quot;, alan_adlari)\n\nprint(alan_adlari)<\/code><\/pre>\n<p>Bu kod \u00e7al\u0131\u015ft\u0131r\u0131ld\u0131\u011f\u0131nda \u00e7\u0131kt\u0131 \u015fu \u015fekilde olacakt\u0131r:<\/p>\n<pre class=\"language-\"><code>[1] &quot;example.com&quot;      &quot;subdomain.anothersite.org&quot; &quot;ftp.myserver.net&quot;<\/code><\/pre>\n<p>\u0130lk <code class=\"language-\">gsub()<\/code> komutu, URL&#8217;nin ba\u015f\u0131ndaki protokolleri (<code class=\"language-\">http:\/\/<\/code>, <code class=\"language-\">https:\/\/<\/code>, <code class=\"language-\">ftp:\/\/<\/code>) ve iste\u011fe ba\u011fl\u0131 olarak <code class=\"language-\">www.<\/code> k\u0131sm\u0131n\u0131 kald\u0131r\u0131r. \u0130kinci <code class=\"language-\">gsub()<\/code> komutu ise, ilk e\u011fik \u00e7izgi <code class=\"language-\">\/<\/code>&#8216;den sonra gelen her \u015feyi kald\u0131rarak sadece alan ad\u0131n\u0131 elde etmemizi sa\u011flar. Bu, web verilerini analiz ederken veya raporlarken \u00e7ok i\u015fe yarayan bir tekniktir.<\/p>\n<p>Bu vaka analizleri, <code class=\"language-\">sub()<\/code> ve <code class=\"language-\">gsub()<\/code> fonksiyonlar\u0131n\u0131n sadece basit metin de\u011fi\u015fiklikleri yapmakla kalmay\u0131p, d\u00fczenli ifadelerle birle\u015fti\u011finde veri temizleme, standardizasyon ve bilgi \u00e7\u0131karma gibi karma\u015f\u0131k g\u00f6revlerde ne kadar g\u00fc\u00e7l\u00fc olabilece\u011fini g\u00f6stermektedir. Bu fonksiyonlar\u0131 etkin bir \u015fekilde kullanmak, veri analizi projelerinin verimlili\u011fini \u00f6nemli \u00f6l\u00e7\u00fcde art\u0131rabilir.<\/p>\n<h3>\u0130leri D\u00fczey Teknikler ve \u0130pu\u00e7lar\u0131<\/h3>\n<p><code class=\"language-\">sub()<\/code> ve <code class=\"language-\">gsub()<\/code> fonksiyonlar\u0131n\u0131 daha etkin kullanmak i\u00e7in baz\u0131 ileri d\u00fczey teknikler ve ipu\u00e7lar\u0131 bulunmaktad\u0131r. Bu ipu\u00e7lar\u0131, daha karma\u015f\u0131k senaryolarda daha verimli ve do\u011fru sonu\u00e7lar elde etmenize yard\u0131mc\u0131 olacakt\u0131r.<\/p>\n<p><strong>1. Geri Referanslar (Backreferences)<\/strong><\/p>\n<p>D\u00fczenli ifadelerdeki gruplama parantezleri <code class=\"language-\">()<\/code> ile yakalanan k\u0131s\u0131mlar\u0131, <code class=\"language-\">replacement<\/code> arg\u00fcman\u0131nda geri referanslar (<code class=\"language-\">\\\\1<\/code>, <code class=\"language-\">\\\\2<\/code> vb.) arac\u0131l\u0131\u011f\u0131yla kullanabilirsiniz. Bu, yakalanan desenin bir k\u0131sm\u0131n\u0131 veya tamam\u0131n\u0131 yeni metinde yeniden kullanman\u0131z\u0131 sa\u011flar.<\/p>\n<p>\u00d6rne\u011fin, &#8220;Soyad\u0131, Ad\u0131&#8221; format\u0131ndaki isimleri &#8220;Ad\u0131 Soyad\u0131&#8221; format\u0131na d\u00f6n\u00fc\u015ft\u00fcrmek i\u00e7in:<\/p>\n<pre class=\"language-R\"><code>isimler &lt;- c(&quot;Y\u0131lmaz, Ali&quot;, &quot;Kaya, Ay\u015fe&quot;, &quot;Demir, Mehmet&quot;)\n# Ad\u0131 ve Soyad\u0131 gruplar\u0131n\u0131 yakalay\u0131p yerlerini de\u011fi\u015ftirelim\ndonusmus_isimler &lt;- gsub(&quot;([^,]+), (\\\\S+)&quot;, &quot;\\\\2 \\\\1&quot;, isimler)\nprint(donusmus_isimler)<\/code><\/pre>\n<p>\u00c7\u0131kt\u0131:<\/p>\n<pre class=\"language-\"><code>[1] &quot;Ali Y\u0131lmaz&quot; &quot;Ay\u015fe Kaya&quot;  &quot;Mehmet Demir&quot;<\/code><\/pre>\n<p>Burada <code class=\"language-\">([^,]+)<\/code> ilk grubu (soyad\u0131) ve <code class=\"language-\">(\\\\S+)<\/code> ikinci grubu (ad\u0131) yakalar. <code class=\"language-\">replacement<\/code> arg\u00fcman\u0131ndaki <code class=\"language-\">\\\\2 \\\\1<\/code> ise ikinci grubu, bir bo\u015fluk ve ard\u0131ndan birinci grubu getirir.<\/p>\n<p><strong>2. Perl Uyumlu D\u00fczenli \u0130fadeler (<code class=\"language-\">perl = TRUE<\/code>)<\/strong><\/p>\n<p>R&#8217;\u0131n varsay\u0131lan d\u00fczenli ifade motoru yerine Perl uyumlu motoru kullanmak, baz\u0131 durumlarda daha geli\u015fmi\u015f \u00f6zellikler ve performans art\u0131\u015f\u0131 sa\u011flayabilir. \u00d6zellikle daha karma\u015f\u0131k desenler veya ileri d\u00fczey \u00f6zellikler gerekti\u011finde <code class=\"language-\">perl = TRUE<\/code> se\u00e7ene\u011fini kullanmak faydal\u0131 olabilir.<\/p>\n<p><strong>3. Sabit E\u015fle\u015ftirme (<code class=\"language-\">fixed = TRUE<\/code>)<\/strong><\/p>\n<p>E\u011fer arad\u0131\u011f\u0131n\u0131z desen, d\u00fczenli ifade karakterleri i\u00e7ermeyen basit bir sabit metin ise, <code class=\"language-\">fixed = TRUE<\/code> arg\u00fcman\u0131n\u0131 kullanmak performans\u0131 art\u0131rabilir. Bu, R&#8217;\u0131n d\u00fczenli ifade ayr\u0131\u015ft\u0131r\u0131c\u0131s\u0131n\u0131 atlamas\u0131n\u0131 sa\u011flar ve do\u011frudan metin aramas\u0131 yapar.<\/p>\n<pre class=\"language-R\"><code>metin &lt;- &quot;Bu bir test metnidir. test yap\u0131yoruz.&quot;\n# D\u00fczenli ifade olarak de\u011fil, sabit metin olarak 'test' kelimesini arayal\u0131m\nyeni_metin &lt;- gsub(&quot;test&quot;, &quot;deneme&quot;, metin, fixed = TRUE)\nprint(yeni_metin)<\/code><\/pre>\n<p>\u00c7\u0131kt\u0131:<\/p>\n<pre class=\"language-\"><code>[1] &quot;Bu bir deneme metnidir. deneme yap\u0131yoruz.&quot;<\/code><\/pre>\n<p><strong>4. Karakter Vekt\u00f6rleri ile \u00c7al\u0131\u015fma<\/strong><\/p>\n<p><code class=\"language-\">sub()<\/code> ve <code class=\"language-\">gsub()<\/code> fonksiyonlar\u0131 tek bir karakter dizisi \u00fczerinde \u00e7al\u0131\u015ft\u0131\u011f\u0131 gibi, birden fazla \u00f6\u011fe i\u00e7eren bir karakter vekt\u00f6r\u00fc \u00fczerinde de \u00e7al\u0131\u015fabilir. Bu, b\u00fcy\u00fck veri setlerindeki metinleri toplu olarak i\u015flemek i\u00e7in son derece kullan\u0131\u015fl\u0131d\u0131r. Fonksiyonlar, vekt\u00f6r\u00fcn her bir \u00f6\u011fesine ayr\u0131 ayr\u0131 uygulan\u0131r ve sonu\u00e7 olarak ayn\u0131 boyutta yeni bir vekt\u00f6r d\u00f6nd\u00fcr\u00fcr.<\/p>\n<p><strong>5. Performans \u0130pu\u00e7lar\u0131<\/strong><\/p>\n<p>*   <strong><code class=\"language-\">fixed = TRUE<\/code> kullan\u0131m\u0131<\/strong>: E\u011fer d\u00fczenli ifadeye ihtiyac\u0131n\u0131z yoksa, <code class=\"language-\">fixed = TRUE<\/code> kullanmak genellikle daha h\u0131zl\u0131d\u0131r.<br \/>\n*   <strong>Daha spesifik desenler<\/strong>: Desen ne kadar spesifik olursa, R&#8217;\u0131n e\u015fle\u015fme bulmas\u0131 o kadar h\u0131zl\u0131 olur. A\u015f\u0131r\u0131 genel desenler (\u00f6rne\u011fin, sadece <code class=\"language-\">.<\/code>) performans\u0131 d\u00fc\u015f\u00fcrebilir.<br \/>\n*   <strong>Gereksiz Gruplamadan Ka\u00e7\u0131n\u0131n<\/strong>: E\u011fer bir grubu geri referans olarak kullanmayacaksan\u0131z, gereksiz yere gruplama parantezleri <code class=\"language-\">()<\/code> kullanmaktan ka\u00e7\u0131n\u0131n.<br \/>\n*   <strong><code class=\"language-\">gsub<\/code> yerine <code class=\"language-\">sub<\/code><\/strong>: E\u011fer sadece ilk e\u015fle\u015fmeyi de\u011fi\u015ftirmeniz gerekiyorsa, <code class=\"language-\">gsub<\/code> yerine <code class=\"language-\">sub<\/code> kullanmak daha verimli olacakt\u0131r.<\/p>\n<p>Bu ileri d\u00fczey teknikler ve ipu\u00e7lar\u0131, <code class=\"language-\">sub()<\/code> ve <code class=\"language-\">gsub()<\/code> fonksiyonlar\u0131n\u0131 kullanarak daha karma\u015f\u0131k metin i\u015fleme g\u00f6revlerini ba\u015far\u0131yla yerine getirmenize yard\u0131mc\u0131 olacakt\u0131r. D\u00fczenli ifadelerle pratik yapmak ve bu fonksiyonlar\u0131n farkl\u0131 arg\u00fcmanlar\u0131n\u0131 denemek, ustal\u0131\u011f\u0131n\u0131z\u0131 art\u0131racakt\u0131r.<\/p>\n<h3>Sonu\u00e7 ve S\u0131k\u00e7a Sorulan Sorular<\/h3>\n<p>R&#8217;daki <code class=\"language-\">sub()<\/code> ve <code class=\"language-\">gsub()<\/code> fonksiyonlar\u0131, metin verilerini i\u015flemek, temizlemek ve d\u00f6n\u00fc\u015ft\u00fcrmek i\u00e7in paha bi\u00e7ilmez ara\u00e7lard\u0131r. <code class=\"language-\">sub()<\/code> fonksiyonu ilk e\u015fle\u015fmeyi de\u011fi\u015ftirirken, <code class=\"language-\">gsub()<\/code> t\u00fcm e\u015fle\u015fmeleri de\u011fi\u015ftirir. D\u00fczenli ifadelerle birlikte kullan\u0131ld\u0131klar\u0131nda, bu fonksiyonlar inan\u0131lmaz bir esneklik ve g\u00fc\u00e7 kazan\u0131r, bu da onlar\u0131 veri analizi, metin madencili\u011fi ve do\u011fal dil i\u015fleme gibi alanlarda vazge\u00e7ilmez k\u0131lar. \u0130ster basit bir metin de\u011fi\u015fimi yap\u0131yor olun, ister karma\u015f\u0131k veri temizleme g\u00f6revleriyle u\u011fra\u015f\u0131yor olun, <code class=\"language-\">sub()<\/code> ve <code class=\"language-\">gsub()<\/code> fonksiyonlar\u0131n\u0131 etkin bir \u015fekilde kullanabilmek, veri bilimi becerilerinizi \u00f6nemli \u00f6l\u00e7\u00fcde geli\u015ftirecektir.<\/p>\n<p>Bu rehber boyunca, bu fonksiyonlar\u0131n temel kullan\u0131mlar\u0131ndan, d\u00fczenli ifadelerle nas\u0131l daha g\u00fc\u00e7l\u00fc hale geldiklerine ve ger\u00e7ek d\u00fcnya senaryolar\u0131nda nas\u0131l uyguland\u0131klar\u0131na kadar bir\u00e7ok konuyu ele ald\u0131k. \u0130leri d\u00fczey teknikler ve performans ipu\u00e7lar\u0131 ile de bu ara\u00e7lar\u0131 daha verimli kullanman\u0131za yard\u0131mc\u0131 olmay\u0131 ama\u00e7lad\u0131k.<\/p>\n<h4>S\u0131k\u00e7a Sorulan Sorular (SSS)<\/h4>\n<p>*   <strong>S1: <code class=\"language-\">sub()<\/code> ve <code class=\"language-\">gsub()<\/code> aras\u0131ndaki temel fark nedir?<\/strong><br \/>\n    <code class=\"language-\">sub()<\/code> fonksiyonu, bir metin i\u00e7indeki bir desenin yaln\u0131zca ilk e\u015fle\u015fmesini de\u011fi\u015ftirirken, <code class=\"language-\">gsub()<\/code> fonksiyonu metin i\u00e7indeki t\u00fcm e\u015fle\u015fmeleri de\u011fi\u015ftirir.<\/p>\n<p>*   <strong>S2: D\u00fczenli ifadeler (regular expressions) neden \u00f6nemlidir?<\/strong><br \/>\n    D\u00fczenli ifadeler, metin i\u00e7inde karma\u015f\u0131k desenler tan\u0131mlamam\u0131z\u0131 sa\u011flar. Bu, <code class=\"language-\">sub()<\/code> ve <code class=\"language-\">gsub()<\/code> fonksiyonlar\u0131n\u0131n sadece sabit metinleri de\u011fil, belirli kurallara uyan karakter gruplar\u0131n\u0131 da bulup de\u011fi\u015ftirmesine olanak tan\u0131r, bu da metin manip\u00fclasyonunda b\u00fcy\u00fck bir esneklik sunar.<\/p>\n<p>*   <strong>S3: <code class=\"language-\">fixed = TRUE<\/code> arg\u00fcman\u0131 ne i\u015fe yarar ve ne zaman kullan\u0131lmal\u0131d\u0131r?<\/strong><br \/>\n    <code class=\"language-\">fixed = TRUE<\/code> arg\u00fcman\u0131, aranan desenin d\u00fczenli ifade olarak de\u011fil, sabit bir metin olarak ele al\u0131nmas\u0131n\u0131 sa\u011flar. E\u011fer arad\u0131\u011f\u0131n\u0131z desen \u00f6zel d\u00fczenli ifade karakterleri i\u00e7ermiyorsa, bu arg\u00fcman\u0131 kullanmak performans\u0131 art\u0131rabilir.<\/p>\n<p>*   <strong>S4: Bir metindeki t\u00fcm noktalama i\u015faretlerini nas\u0131l kald\u0131rabilirim?<\/strong><br \/>\n    T\u00fcm noktalama i\u015faretlerini kald\u0131rmak i\u00e7in <code class=\"language-\">gsub()<\/code> fonksiyonunu ve uygun bir d\u00fczenli ifadeyi kullanabilirsiniz. \u00d6rne\u011fin, <code class=\"language-\">gsub(\"[[:punct:]]\", \"\", metin)<\/code> komutu, metindeki t\u00fcm noktalama i\u015faretlerini bo\u015f bir dizeyle de\u011fi\u015ftirerek kald\u0131r\u0131r. <code class=\"language-\">[[:punct:]]<\/code>, R&#8217;da standart noktalama karakterlerini temsil eden bir karakter s\u0131n\u0131f\u0131d\u0131r.<\/p>\n<p>*   <strong>S5: <code class=\"language-\">sub()<\/code> veya <code class=\"language-\">gsub()<\/code> bir vekt\u00f6rde nas\u0131l \u00e7al\u0131\u015f\u0131r?<\/strong><br \/>\n    Bu fonksiyonlar, bir karakter vekt\u00f6r\u00fc \u00fczerinde uyguland\u0131\u011f\u0131nda, vekt\u00f6r\u00fcn her bir \u00f6\u011fesine ayr\u0131 ayr\u0131 uygulan\u0131r ve sonu\u00e7 olarak ayn\u0131 boyutta yeni bir vekt\u00f6r d\u00f6nd\u00fcr\u00fcr. Bu, b\u00fcy\u00fck veri setlerindeki metinleri toplu olarak i\u015flemek i\u00e7in olduk\u00e7a kullan\u0131\u015fl\u0131d\u0131r.<\/p>\n<p>Bu fonksiyonlar hakk\u0131nda daha fazla pratik yaparak ve farkl\u0131 senaryolarda deneyerek R&#8217;daki metin i\u015fleme yeteneklerinizi geli\u015ftirebilirsiniz.<\/p>\n<div class=\"github-example-link\"><strong>\u00d6rnek kod:<\/strong> <a href=\"https:\/\/github.com\/fatihsoysalcom\/r-text-manipulation-sub-gsub\" target=\"_blank\" rel=\"noopener noreferrer\">github.com\/fatihsoysalcom\/r-text-manipulation-sub-gsub<\/a><\/div>\n","protected":false},"excerpt":{"rendered":"R&#8217;da Metin Manip\u00fclasyonu: sub() ve gsub() Fonksiyonlar\u0131 Veri analizi ve biliminde, metin verileriyle \u00e7al\u0131\u015fmak ka\u00e7\u0131n\u0131lmaz bir durumdur. \u00c7o\u011fu&hellip;","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"csco_page_header_type":"","csco_page_load_nextpost":"","csco_page_subscribe_form":"","csco_page_contact_form":"","footnotes":""},"categories":[1],"tags":[],"class_list":{"0":"post-42435","1":"post","2":"type-post","3":"status-publish","4":"format-standard","6":"category-genel","7":"cs-entry","8":"cs-video-wrap"},"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v20.5 (Yoast SEO v25.3.1) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>R&#039;da Metin Manip\u00fclasyonu: sub() ve gsub() Fonksiyonlar\u0131<\/title>\n<meta name=\"description\" content=\"R&#039;da Metin Manip\u00fclasyonu: sub() ve gsub() Fonksiyonlar\u0131 Veri analizi ve biliminde, metin verileriyle \u00e7al\u0131\u015fmak ka\u00e7\u0131n\u0131lmaz bir durumdur.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/fatihsoysal.com\/blog\/rda-metin-manipulasyonu-sub-ve-gsub-fonksiyonlari\/\" \/>\n<meta property=\"og:locale\" content=\"tr_TR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"R&#039;da Metin Manip\u00fclasyonu: sub() ve gsub() Fonksiyonlar\u0131\" \/>\n<meta property=\"og:description\" content=\"R&#039;da Metin Manip\u00fclasyonu: sub() ve gsub() Fonksiyonlar\u0131 Veri analizi ve biliminde, metin verileriyle \u00e7al\u0131\u015fmak ka\u00e7\u0131n\u0131lmaz bir durumdur.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/fatihsoysal.com\/blog\/rda-metin-manipulasyonu-sub-ve-gsub-fonksiyonlari\/\" \/>\n<meta property=\"og:site_name\" content=\"Kodlar\u0131n Gizemli D\u00fcnyas\u0131\" \/>\n<meta property=\"article:published_time\" content=\"2026-06-10T11:02:36+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2026-06-10T11:02:55+00:00\" \/>\n<meta name=\"author\" content=\"Fatih Soysal\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Yazan:\" \/>\n\t<meta name=\"twitter:data1\" content=\"Fatih Soysal\" \/>\n\t<meta name=\"twitter:label2\" content=\"Tahmini okuma s\u00fcresi\" \/>\n\t<meta name=\"twitter:data2\" content=\"17 dakika\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/rda-metin-manipulasyonu-sub-ve-gsub-fonksiyonlari\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/rda-metin-manipulasyonu-sub-ve-gsub-fonksiyonlari\/\"},\"author\":{\"name\":\"Fatih Soysal\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"headline\":\"R&#8217;da Metin Manip\u00fclasyonu: sub() ve gsub() Fonksiyonlar\u0131\",\"datePublished\":\"2026-06-10T11:02:36+00:00\",\"dateModified\":\"2026-06-10T11:02:55+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/rda-metin-manipulasyonu-sub-ve-gsub-fonksiyonlari\/\"},\"wordCount\":2684,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/fatihsoysal.com\/blog\/rda-metin-manipulasyonu-sub-ve-gsub-fonksiyonlari\/#respond\"]}],\"copyrightYear\":\"2026\",\"copyrightHolder\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/rda-metin-manipulasyonu-sub-ve-gsub-fonksiyonlari\/\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/rda-metin-manipulasyonu-sub-ve-gsub-fonksiyonlari\/\",\"name\":\"R'da Metin Manip\u00fclasyonu: sub() ve gsub() Fonksiyonlar\u0131\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#website\"},\"datePublished\":\"2026-06-10T11:02:36+00:00\",\"dateModified\":\"2026-06-10T11:02:55+00:00\",\"description\":\"R'da Metin Manip\u00fclasyonu: sub() ve gsub() Fonksiyonlar\u0131 Veri analizi ve biliminde, metin verileriyle \u00e7al\u0131\u015fmak ka\u00e7\u0131n\u0131lmaz bir durumdur.\",\"breadcrumb\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/rda-metin-manipulasyonu-sub-ve-gsub-fonksiyonlari\/#breadcrumb\"},\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/fatihsoysal.com\/blog\/rda-metin-manipulasyonu-sub-ve-gsub-fonksiyonlari\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/rda-metin-manipulasyonu-sub-ve-gsub-fonksiyonlari\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Anasayfa\",\"item\":\"https:\/\/fatihsoysal.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"R&#8217;da Metin Manip\u00fclasyonu: sub() ve gsub() Fonksiyonlar\u0131\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#website\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/\",\"name\":\"Fatihsoysal.com\",\"description\":\"Blog - Yaz\u0131l\u0131m D\u00fcnyas\u0131 Tecr\u00fcbelerim\",\"publisher\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/fatihsoysal.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"tr\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\",\"name\":\"Fatih Soysal\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"tr\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png\",\"contentUrl\":\"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png\",\"width\":512,\"height\":512,\"caption\":\"Fatih Soysal\"},\"logo\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/\"},\"description\":\"Kullan\u0131m ve kodlama m\u00fckemmeliyetini odak alan uygulamalar olu\u015fturma deneyimine sahip, profesyonel olarak 15+ y\u0131l \u00fczeri deneyime sahip bir yaz\u0131l\u0131m m\u00fchendisi.\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/author\/fatihsoysal\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"R'da Metin Manip\u00fclasyonu: sub() ve gsub() Fonksiyonlar\u0131","description":"R'da Metin Manip\u00fclasyonu: sub() ve gsub() Fonksiyonlar\u0131 Veri analizi ve biliminde, metin verileriyle \u00e7al\u0131\u015fmak ka\u00e7\u0131n\u0131lmaz bir durumdur.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/fatihsoysal.com\/blog\/rda-metin-manipulasyonu-sub-ve-gsub-fonksiyonlari\/","og_locale":"tr_TR","og_type":"article","og_title":"R'da Metin Manip\u00fclasyonu: sub() ve gsub() Fonksiyonlar\u0131","og_description":"R'da Metin Manip\u00fclasyonu: sub() ve gsub() Fonksiyonlar\u0131 Veri analizi ve biliminde, metin verileriyle \u00e7al\u0131\u015fmak ka\u00e7\u0131n\u0131lmaz bir durumdur.","og_url":"https:\/\/fatihsoysal.com\/blog\/rda-metin-manipulasyonu-sub-ve-gsub-fonksiyonlari\/","og_site_name":"Kodlar\u0131n Gizemli D\u00fcnyas\u0131","article_published_time":"2026-06-10T11:02:36+00:00","article_modified_time":"2026-06-10T11:02:55+00:00","author":"Fatih Soysal","twitter_card":"summary_large_image","twitter_misc":{"Yazan:":"Fatih Soysal","Tahmini okuma s\u00fcresi":"17 dakika"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/fatihsoysal.com\/blog\/rda-metin-manipulasyonu-sub-ve-gsub-fonksiyonlari\/#article","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/rda-metin-manipulasyonu-sub-ve-gsub-fonksiyonlari\/"},"author":{"name":"Fatih Soysal","@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"headline":"R&#8217;da Metin Manip\u00fclasyonu: sub() ve gsub() Fonksiyonlar\u0131","datePublished":"2026-06-10T11:02:36+00:00","dateModified":"2026-06-10T11:02:55+00:00","mainEntityOfPage":{"@id":"https:\/\/fatihsoysal.com\/blog\/rda-metin-manipulasyonu-sub-ve-gsub-fonksiyonlari\/"},"wordCount":2684,"commentCount":0,"publisher":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"inLanguage":"tr","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/fatihsoysal.com\/blog\/rda-metin-manipulasyonu-sub-ve-gsub-fonksiyonlari\/#respond"]}],"copyrightYear":"2026","copyrightHolder":{"@id":"https:\/\/fatihsoysal.com\/blog\/#organization"}},{"@type":"WebPage","@id":"https:\/\/fatihsoysal.com\/blog\/rda-metin-manipulasyonu-sub-ve-gsub-fonksiyonlari\/","url":"https:\/\/fatihsoysal.com\/blog\/rda-metin-manipulasyonu-sub-ve-gsub-fonksiyonlari\/","name":"R'da Metin Manip\u00fclasyonu: sub() ve gsub() Fonksiyonlar\u0131","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/#website"},"datePublished":"2026-06-10T11:02:36+00:00","dateModified":"2026-06-10T11:02:55+00:00","description":"R'da Metin Manip\u00fclasyonu: sub() ve gsub() Fonksiyonlar\u0131 Veri analizi ve biliminde, metin verileriyle \u00e7al\u0131\u015fmak ka\u00e7\u0131n\u0131lmaz bir durumdur.","breadcrumb":{"@id":"https:\/\/fatihsoysal.com\/blog\/rda-metin-manipulasyonu-sub-ve-gsub-fonksiyonlari\/#breadcrumb"},"inLanguage":"tr","potentialAction":[{"@type":"ReadAction","target":["https:\/\/fatihsoysal.com\/blog\/rda-metin-manipulasyonu-sub-ve-gsub-fonksiyonlari\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/fatihsoysal.com\/blog\/rda-metin-manipulasyonu-sub-ve-gsub-fonksiyonlari\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Anasayfa","item":"https:\/\/fatihsoysal.com\/blog\/"},{"@type":"ListItem","position":2,"name":"R&#8217;da Metin Manip\u00fclasyonu: sub() ve gsub() Fonksiyonlar\u0131"}]},{"@type":"WebSite","@id":"https:\/\/fatihsoysal.com\/blog\/#website","url":"https:\/\/fatihsoysal.com\/blog\/","name":"Fatihsoysal.com","description":"Blog - Yaz\u0131l\u0131m D\u00fcnyas\u0131 Tecr\u00fcbelerim","publisher":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/fatihsoysal.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"tr"},{"@type":["Person","Organization"],"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1","name":"Fatih Soysal","image":{"@type":"ImageObject","inLanguage":"tr","@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png","contentUrl":"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png","width":512,"height":512,"caption":"Fatih Soysal"},"logo":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/"},"description":"Kullan\u0131m ve kodlama m\u00fckemmeliyetini odak alan uygulamalar olu\u015fturma deneyimine sahip, profesyonel olarak 15+ y\u0131l \u00fczeri deneyime sahip bir yaz\u0131l\u0131m m\u00fchendisi.","url":"https:\/\/fatihsoysal.com\/blog\/author\/fatihsoysal\/"}]}},"yoast_meta":{"yoast_wpseo_title":"","yoast_wpseo_metadesc":"","yoast_wpseo_canonical":""},"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/42435","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/comments?post=42435"}],"version-history":[{"count":1,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/42435\/revisions"}],"predecessor-version":[{"id":42436,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/42435\/revisions\/42436"}],"wp:attachment":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/media?parent=42435"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/categories?post=42435"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/tags?post=42435"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}