R ile borulama
Borulama Nedir?
Borulama ayrıca zincirleme olarak da adlandırılabilir.
R'de boru operatörü ( %>%), bir işlemin sonucunu diğerine girdi olarak iletmek için kullanılır. Titiz evren paketinin bir parçasıdır ve daha okunaklı ve özlü bir kod oluşturmak için kullanılır.
Boru operatörü, iç içe işlev çağrılarına göre okunması ve anlaşılması daha kolay bir şekilde birden çok işlemi birbirine zincirlemenize olanak tanır. Kodunuzu daha özlü ve bakımı daha kolay hale getirebilir.
Neden boru / zincirleme kullanıyoruz?
Borular veya zincirleme, bir veri parçası üzerinde özlü ve okunabilir bir şekilde birden fazla işlem gerçekleştirmenize olanak sağlamak için programlamada kullanılır. Bir kanal işleci veya başka bir sözdizimi kullanarak birden çok işlemi birbirine zincirleyerek, birden çok işlev çağrısını iç içe geçirmek veya birden çok kod satırı yazmak yerine karmaşık görevleri daha doğrusal ve anlaşılır bir şekilde ifade edebilirsiniz.
Borular ve zincirleme, özellikle bir veri kümesini analiz veya görselleştirmeye hazırlamak için bir dizi işlemi uygulamanız gereken veri manipülasyonu ve analiz görevlerinde yararlı olabilir . Kodunuzu daha modüler ve bakımını daha kolay hale getirebilirler ve farklı işlem kombinasyonlarını daha hızlı yazmanıza ve test etmenize olanak tanıyarak üretkenliğinizi artırabilirler.
Genel olarak, borular ve zincirleme, karmaşık sorunları daha iyi anlamanıza ve çözmenize yardımcı olabilecek daha okunabilir, modüler ve esnek kod oluşturmak için yararlı araçlardır.
Boru işleçleri, parametreleri bir işleve basit ve şık bir şekilde iletmek için kullanılır. Kodlayıcının ara değerleri ortadan kaldırmasına ve işlev çağrılarının daha kolay okunmasına olanak tanır.
Borulamanın faydaları var mı?
Pipe operatörünü kullanmanın çeşitli faydaları vardır:
- Geliştirilmiş okunabilirlik: Boru operatörü, karmaşık işlemleri daha kısa ve doğrusal bir şekilde ifade etmenize izin vererek kodunuzu daha okunaklı hale getirebilir. Ayrıca, kodunuzu takip etmeyi zorlaştırabilecek işlev çağrılarının derinlemesine iç içe geçmesini önlemenize yardımcı olabilir.
- Artırılmış modülerlik: Farklı görevleri gerçekleştirmek için farklı şekillerde kolayca birleştirilebilen yeniden kullanılabilir kod blokları oluşturmak için kanal operatörünü kullanabilirsiniz. Bu, kodunuzu daha modüler ve bakımı kolay hale getirebilir.
- Gelişmiş işbirliği: Pipe operatörü, R topluluğunda yaygın olarak kullanılan ve tanıdık bir araçtır ve onu kodunuzda kullanmak, başkalarının çalışmanızı anlamasını ve katkıda bulunmasını kolaylaştırabilir.
- Daha fazla esneklik: Boru operatörü, kodunuzun farklı bileşenlerini kolayca değiştirmenize ve kodunuzun büyük bölümlerini yeniden yazmak zorunda kalmadan farklı işlem kombinasyonlarını denemenize olanak tanır. Bu size zaman kazandırabilir ve analizinizi denemenizi ve yinelemenizi kolaylaştırabilir.
Boru işleçleri, aşağıdakiler de dahil olmak üzere bir dizi programlama dilinde kullanılmaktadır:
- Unix kabukları (bash gibi): Unix kabuklarında, boru operatörü (
|), bir komutun çıktısını başka bir komutun girdisi olarak yönlendirmek için kullanılır. Örneğin, komutls -l | grep "^d"geçerli dizindeki dizinleri listeler. - R: R'de boru operatörü (
%>%), bir işlemin sonucunu diğerine girdi olarak iletmek için kullanılır. Titiz evren paketinin bir parçasıdır ve daha okunaklı ve özlü bir kod oluşturmak için kullanılır. - Elixir: Elixir'de boru operatörü (
|>) bir fonksiyonun sonucunu diğerine girdi olarak iletmek için kullanılır. R pipe operatörüne benzer. - F#: F#'da boru operatörü (
|>), bir işlevin sonucunu diğerine girdi olarak iletmek için kullanılır. Elixir ve R pipe operatörlerine benzer. - PowerShell: PowerShell'de, işlem hattı operatörü (
|), bir komutun çıktısını başka bir komuta girdi olarak iletmek için kullanılır. Unix boru operatörüne benzer. - Julia'da boru operatörü (
|>), bir fonksiyonun sonucunu diğerine girdi olarak iletmek için kullanılır. R, Elixir ve F# gibi diğer dillerde kullanılan boru işleçlerine benzer.
boru türleri
Programlamada kullanılan çeşitli kanal türleri vardır:
- Veri boruları : Bu borular, bir komutun veya işlevin çıktısını diğerine girdi olarak iletmek için kullanılır. Genellikle Unix kabuklarında (bash gibi) ve kanal işleci olan programlama dillerinde (R ve Elixir gibi) kullanılırlar.
- Yönlendirme boruları : Bu borular, bir komutun veya işlevin çıktısını bir dosyaya veya başka bir konuma yönlendirmek için kullanılır. Genellikle Unix kabuklarında (bash gibi) ve yeniden yönlendirme işleci olan programlama dillerinde (PowerShell gibi) kullanılırlar.
- Koşullu borular : Bu borular, yalnızca belirli bir koşul karşılandığında bir komutun veya işlevin çıktısını başka bir komuta veya işleve geçirmek için kullanılır. Genellikle Unix kabuklarında (bash gibi) ve koşullu işleci olan programlama dillerinde (PowerShell gibi) kullanılırlar.
- Mesaj geçiş boruları : Bu borular, süreçler veya iş parçacıkları arasında mesaj veya veri iletmek için kullanılır. Bir programın farklı bölümlerinin birbiriyle iletişim kurmasına izin vermek için eşzamanlı programlama dillerinde yaygın olarak kullanılırlar.
- Yönlendirme boruları, bir işlevin çıktısını başka bir işleve girdi olarak ileten bir tür boru operatörüdür. Çıktı, işlevler zinciri boyunca geriye doğru değil ileriye doğru aktığı için bunlara "ileri" borular denir.
- R'de,
%>%operatör bir ileri boru operatörüdür. Bir işlemin sonucunu başka bir işleme ilk argüman olarak iletmek için kullanılır. Örneğin:
Yönlendirme boruları , veri manipülasyonu ve analizi için bir R paketleri koleksiyonu olan düzenli evren bağlamında özellikle yararlı olabilir.
R'de " ileri besleme boruları ", ara sonucu bir değişkene atamadan bir işlevin çıktısını başka bir işleve girdi olarak geçirmenin bir yoludur. %$%Bu , operatöre benzer operatör kullanılarak yapılır %>%, ancak girişi, ilk argüman yerine sol taraftaki işleve bir argüman olarak operatörün sağ tarafına iletir.
Julia ayrıca , girişi bir işleve son argüman yerine ilk argüman olarak iletmek için kullanılabilen bir " geriye doğru yöneltme " operatörüne ( ) sahiptir. <|Bu, girdiyi son değil de ilk bağımsız değişken olarak bekleyen bir işleve iletmek istediğiniz durumlarda yararlı olabilir.
Genel olarak, boru operatörü, Julia'da daha okunabilir ve özlü kod yazmak için yararlı bir araç olabilir.
Bazı örneklere bir göz atalım:
url='https://raw.githubusercontent.com/NicJC/Country-Sales/main/Country_Sales.csv'
data <- read_csv(url,show_col_types = FALSE)
data %>%
head(10)
image by author
url='https://raw.githubusercontent.com/NicJC/Country-Sales/main/Country_Sales.csv'
data <- read_csv(url,show_col_types = FALSE)
data %>%
head(10) %>%
select(c(1,2,3,6,7))
image by author
Veri çerçevesine daha fazla parametre iletilmeden önce veri çerçevesinin ilk 10 satırını listelediğimiz için, yalnızca yukarıdaki görselden görebildiğimiz ilk 10 satırla çalışacağız.
1-10 / 10 satır
data %>%
select(c(1,2,3,6,7)) %>%
rename(Units_Sold = 'Units Sold',Item_Type = 'Item Type',Order_Date = 'Order Date')
image by author
data %>%
select(c(1,2,3,6,7)) %>%
rename(Units_Sold = 'Units Sold',Item_Type = 'Item Type',Order_Date = 'Order Date') %>%
filter(Country == "Australia" & Item_Type != ("Vegetables"))
image by author
Tahsis için '==' ve hariç tutma için '!=' not edin.
Şimdi biraz toplama ve gruplama ekleyebiliriz.
data %>%
select(c(1,2,3,6,7)) %>%
rename(Units_Sold = 'Units Sold',Item_Type = 'Item Type',Order_Date = 'Order Date') %>%
filter(Country == "Australia" & Item_Type != ("Vegetables")) %>%
group_by(Item_Type, Year) %>%
summarise(Avg_Sales = mean(Units_Sold))
image by author
data %>%
select(c(1,2,3,6,7)) %>%
rename(Units_Sold = 'Units Sold',Item_Type = 'Item Type',Order_Date = 'Order Date') %>%
filter(Country == "Australia" & Item_Type != ("Vegetables")) %>%
group_by(Item_Type, Year) %>%
summarise(Avg_Sales = mean(Units_Sold)) %>%
ggplot() +
geom_point(mapping = aes(x = Year , Avg_Sales , col = Item_Type)) +
labs( title = "Average sales by item", subtitle = "Australian Sales" ,
col = "Item Type" , y = "Average sales" , caption = "Vegetables excluded from sales")
Tüm bu manipüle edilmiş verileri, bize biraz zaman kazandıracak yeni bir veri çerçevesine tahsis edebiliriz: -
df <- veri
bu, orijinal veri çerçevesindeki herhangi bir veriye erişmemize izin vermeyecektir.
Bu, yalnızca manipüle edilmiş verileri saklamak istiyorsak yardımcı olabilir.
df <- data %>%
select(c(1,2,3,6,7)) %>%
rename(Units_Sold = 'Units Sold',Item_Type = 'Item Type',Order_Date = 'Order Date') %>%
filter(Country == "Australia" & Item_Type != ("Vegetables")) %>%
group_by(Item_Type, Year) %>%
summarise(Avg_Sales = mean(Units_Sold))
df
image by author
Veri Bilimi için R'den
Boru güçlü bir araçtır, ancak emrinizdeki tek araç değildir ve her sorunu çözmez! Borular, oldukça kısa bir doğrusal işlem sırasını yeniden yazmak için en kullanışlıdır. Bence şu durumlarda başka bir alete uzanmalısınız:
- Borularınız (diyelim ki) on adımdan daha uzun. Bu durumda, anlamlı adlara sahip ara nesneler oluşturun. Bu, hata ayıklamayı kolaylaştıracaktır çünkü ara sonuçları daha kolay kontrol edebilirsiniz ve değişken adları amacı iletmeye yardımcı olabileceğinden kodunuzu anlamayı kolaylaştırır.
- Birden çok girdiniz veya çıktınız var. Dönüştürülmekte olan bir birincil nesne yoksa, ancak iki veya daha fazla nesne birleştiriliyorsa boruyu kullanmayın.
- Karmaşık bir bağımlılık yapısına sahip yönlendirilmiş bir grafik hakkında düşünmeye başlıyorsunuz. Borular temel olarak doğrusaldır ve bunlarla karmaşık ilişkileri ifade etmek genellikle kafa karıştırıcı kodlar verir.
Çeşitli programlama dillerinde kullanımda olan ve her biri kendi özellik ve yeteneklerine sahip birçok farklı boru operatörü vardır.
Borularla çalışmaya alışmak biraz zaman alabilir, ancak bunları kullanmanın pek çok avantajı vardır:
- Geliştirilmiş okunabilirlik
- Esneklik
- Daha kolay hata ayıklama
- modülerlik
Boru kavramı programlamaya özgü değildir ve matematik ve mühendislikte uzun bir geçmişe sahiptir. Matematiksel bağlamda boru, bir sıvıyı (su veya gaz gibi) bir yerden başka bir yere iletmek için kullanılan bir cihazdır. Borular genellikle sıvıları birbirine bağlı kanallar veya tüpler sistemi aracılığıyla taşımak için kullanılır ve genellikle bir aşamadan diğerine sıvının akışını ve basıncını kontrol etmek için kullanılır...
Umarım makaleyi beğenmişsinizdir!
Veri borulama ve manipülasyon hakkındaki makaleme göz atın:
Verilerinizi R ile borulama — 1. bölümLinkedin veya github üzerinden bağlanalım

![Bağlantılı Liste Nedir? [Bölüm 1]](https://post.nghiatu.com/assets/images/m/max/724/1*Xokk6XOjWyIGCBujkJsCzQ.jpeg)



































