R'de geniş ve uzun formatlar arasındaki veriler nasıl yeniden şekillendirilir
R’deki bir veri çerçevesi geniş veya uzun formatta görüntülenebilir.
Amacınıza bağlı olarak veri çerçevesinin bu spesifik formatlardan birinde olmasını isteyebilirsiniz.
Verileri bu formatlar arasında yeniden şekillendirmenin en kolay yolu, R’deki Tidyr paketindeki aşağıdaki iki işlevi kullanmaktır:
- pivot_longer() : bir veri bloğunu geniş formattan uzun formata yeniden şekillendirir.
- pivot_wider() : bir veri bloğunu uzun formattan geniş formata yeniden şekillendirir.
Aşağıdaki örnekler her bir fonksiyonun pratikte nasıl kullanılacağını göstermektedir.
Örnek 1: Verileri Genişten Uzuna Yeniden Şekillendirme
R’de şu anda geniş formatta olan aşağıdaki veri çerçevesine sahip olduğumuzu varsayalım:
#create data frame
df <- data. frame (player=c('A', 'B', 'C', 'D'),
year1=c(12, 15, 19, 19),
year2=c(22, 29, 18, 12))
#view data frame
df
player year1 year2
1 to 12 22
2 B 15 29
3 C 19 18
4 D 19 12
Bu veri çerçevesini uzun formata döndürmek için pivot_longer() fonksiyonunu kullanabiliriz:
library (tidyr)
#pivot the data frame into a long format
df %>% pivot_longer(cols=c(' year1 ', ' year2 '),
names_to=' year ',
values_to=' points ')
# A tibble: 8 x 3
player year points
1 A year1 12
2 A year2 22
3 B year1 15
4 B year2 29
5 C year1 19
6 C year2 18
7 D year1 19
8 D year2 12
Yıl1 ve yıl2 sütun adlarının artık “yıl” adı verilen yeni bir sütunda değer olarak kullanıldığını ve bu orijinal sütunlardaki değerlerin “puan” adı verilen yeni bir sütuna yerleştirildiğini unutmayın.
Sonuçta uzun bir veri çerçevesi ortaya çıkar.
Not : Pivot_longer() işlevine ilişkin tüm belgeleri burada bulabilirsiniz.
Örnek 2: Verileri Uzundan Genişliğe Yeniden Şekillendirme
R’de şu anda uzun formatta olan aşağıdaki veri çerçevesine sahip olduğumuzu varsayalım:
#create data frame
df <- data. frame (player=rep(c('A', 'B'), each= 4 ),
year=rep(c(1, 1, 2, 2), times= 2 ),
stat=rep(c('points', 'assists'), times= 4 ),
amount=c(14, 6, 18, 7, 22, 9, 38, 4))
#view data frame
df
player year stat amount
1 A 1 points 14
2 A 1 assists 6
3 A 2 points 18
4 A 2 assists 7
5 B 1 points 22
6 B 1 assists 9
7 B 2 points 38
8 B 2 assists 4
Bu veri çerçevesini geniş bir formata döndürmek için pivot_wider() fonksiyonunu kullanabiliriz:
library (tidyr)
#pivot the data frame into a wide format
df %>% pivot_wider(names_from = stat, values_from = amount)
# A tibble: 4 x 4
player year points assists
1 A 1 14 6
2 A 2 18 7
3 B 1 22 9
4 B 2 38 4
Bu yeni sütunlarda istatistik sütunundaki değerlerin artık sütun adı olarak, miktar sütunundaki değerlerin ise hücre değerleri olarak kullanıldığını unutmayın.
Sonuçta büyük bir veri bloğu ortaya çıkıyor.
Not : Pivot_wider() işlevine ilişkin tüm belgeleri burada bulabilirsiniz.
Ek kaynaklar
Aşağıdaki eğitimlerde R’de diğer ortak görevlerin nasıl gerçekleştirileceği açıklanmaktadır:
R’de gruba göre benzersiz değerler nasıl sayılır?
R’de NA olmayan değerler nasıl sayılır
R’de göreceli frekans tabloları nasıl oluşturulur