Program
Matrisleri transpoze etmek, R programlama ortamında temel bir veri işleme görevidir. Bu eğitimde, R'de matrisleri etkili bir şekilde nasıl transpoze edeceğinizi, bu işi gerçekleştirmenin birkaç yöntemini göstererek anlatacağım. Haydi başlayalım!
Hızlı Yanıt: R'de Bir Matris Nasıl Transpoze Edilir
Aceleniz varsa, R'de bir matrisi transpoze etmenin en hızlı yolu şudur: t() fonksiyonunu kullanın. t() fonksiyonu temel R'in bir parçasıdır ve bir matrisi anında transpoze etmenin bir yolunu sağlar. İşte basit bir örnek:
# Creating a sample matrix
my_matrix <- matrix(1:6, nrow = 2, ncol = 3)
print(my_matrix)
[,1] [,2] [,3]
[1,] 1 3 5
[2,] 2 4 6
# Transposing the matrix
transposed_matrix <- t(my_matrix)
print(transposed_matrix)
[,1] [,2]
[1,] 1 2
[2,] 3 4
[3,] 5 6
Transpoze Etmek Nedir?
Bir matrisi transpoze etmek, satır ve sütunlarını çevirmeyi; satır verisini sütun verisine, sütun verisini de satır verisine dönüştürmeyi içerir. Bu işlem, veri kümelerini yeniden yapılandırmak ve belirli analizlere veya görselleştirmelere daha uygun hale getirmek için veri işleme sırasında yaygın olarak kullanılır. Örneğin, farklı şehirler için günlük sıcaklıkları içeren bir matrisi ele alalım. Bu veri çerçevesini transpoze etmek, satırları (günler) sütunlarla (şehirler) yer değiştirecek, bu da çizim veya istatistiksel analiz gibi sonraki işlemleri basitleştirebilir.
|
Gün |
New York |
Lost Angeles |
Chicago |
|
Gün 1 |
22 |
25 |
18 |
|
Gün 2 |
20 |
28 |
21 |
Transpoze edilmeden önce 3 şehirde örnek bir hava durumu veri kümesi
|
Şehir |
Gün 1 |
Gün 2 |
|
New York |
22 |
20 |
|
Los Angeles |
25 |
28 |
|
Chicago |
18 |
21 |
Transpoze edildikten sonra 3 şehirde örnek bir hava durumu veri kümesi
R'de Bir Matrisi Transpoze Etmenin Üç Yöntemi
Farklı şehirler için günlük sıcaklıklardan oluşan matrisimizi dikkate alarak, bu matrisi R'de farklı yöntemlerle nasıl transpoze edebileceğimizi inceleyelim.
Yöntem #1: R'de Temel R Kullanarak Bir Matrisi Nasıl Transpoze Ederiz
R'de bir matrisi transpoze etmenin en yalın yolu, daha önce gösterildiği gibi temel R'deki t() fonksiyonunu kullanmaktır. Ek paketlere gerek olmadan matrisleri hızlıca transpoze etmek için verimli, doğrudan ve başvurulacak bir seçenektir.
# Assume that temparature_matrix is already predefined
print(temperature_matrix)
New_York Los_Angeles Chicago
Day 1 22 20 25
Day 2 28 18 21
# Transpose temperature_matrix
transposed_matrix <- t(temperature_matrix)
print(transposed_matrix)
Day 1 Day 2
New_York 22 28
Los_Angeles 20 18
Chicago 25 21
Yöntem #2: tidyverse Kullanarak R'de Bir Matrisi Transpoze Etmek
tidyverse, R'de veriyle çalışmayı verimli ve tutarlı kılan güçlü bir araç setidir. tidyverse genellikle veri çerçeveleriyle kullanılsa da, bir matrisi veri çerçevesine dönüştürebilir ve ardından tidyr kullanarak pivotlama yoluyla onu "transpoze" edebilirsiniz. Özellikle veriyi analiz etmek için zaten tidyverse kullanıyorsanız bu yöntem kullanışlıdır.
library(tidyr)
library(dplyr)
library(tibble)
# Converting the matrix to a data frame for tidyverse manipulation
temperature_df <- as.data.frame(temperature_matrix)
# "Transposing" the matrix by converting to long then wide format
transposed_df <- temperature_df %>%
rownames_to_column(var = "Day") %>%
pivot_longer(-Day, names_to = "City", values_to = "Temperature") %>%
pivot_wider(names_from = City, values_from = Temperature)
print(transposed_df)
# A tibble: 2 × 4
Day New_York Los_Angeles Chicago
<chr> <dbl> <dbl> <dbl>
1 Day 1 22 20 25
2 Day 2 28 18 21
Yöntem #3: data.table Kullanarak R'de Bir Matrisi Transpoze Etmek
tidyverse yaklaşımına benzer şekilde, data.table veri çerçeveleri veya veri tabloları ile çalışabilir. İşte önce bir matrisi veri tablosuna dönüştürerek nasıl transpoze edebileceğiniz:
library(data.table)
# Converting the matrix to a data.table
temperature_dt <- as.data.table(temperature_matrix, keep.rownames = "Day")
# Transposing the matrix by melting and dcasting (similar to pivot_longer and pivot_wider)
transposed_dt <- melt(temperature_dt, id.vars = "Day") %>%
dcast(variable ~ Day, value.var = "value")
print(transposed_dt)
variable Day 1 Day 2
1: New_York 22 28
2: Los_Angeles 20 18
3: Chicago 25 21
Son Düşünceler
Matrisleri transpoze etmek, R programlamada temel bir beceridir. İster temel R, ister tidyverse içindeki tidyr, ister data.table paketi ile çalışın, R veri ihtiyaçlarınıza uygun esnek seçenekler sunar. Daha fazlasını öğrenmek istiyorsanız, R'de tidyr ile Veriyi Yeniden Şekillendirme Kopya Kağıdımıza göz atın ya da daha iyisi, R ile Veri Manipülasyonu Yetenek Yoluna başlayın.
Adel, Veri Bilimi eğitmeni, konuşmacı ve DataCamp’te Medya Başkan Yardımcısıdır. Adel, veri analizi, makine öğrenimi ve veri mühendisliği üzerine çeşitli kurslar ve canlı eğitimler yayınlamıştır. Kuruluşlar genelinde veri becerilerini ve veri okuryazarlığını yaygınlaştırmaya ve teknolojinin toplumla kesişimine tutkuyla bağlıdır. Veri Bilimi ve İş Analitiği alanında yüksek lisans derecesine sahiptir. Boş zamanlarında onu kedisi Louis ile vakit geçirirken bulabilirsiniz.

