R'de gruba göre benzersiz değerler nasıl sayılır (örneklerle)


R’de grup başına benzersiz değerlerin sayısını saymak için aşağıdaki yöntemleri kullanabilirsiniz:

Yöntem 1: Base R’yi kullanın

 results <- aggregate(data=df, values_var~group_var, function (x) length ( unique (x)))

Yöntem 2: dplyr’ı kullanın

 library (dplyr)

results <- df %>%
  group_by(group_var) %>%
  summarize(count = n_distinct (values_var))

Yöntem 3: data.table’ı kullanma

 library (data.table)

df <- data.table(df)
results <- df[, .(count = length ( unique (values_var))), by = group_var]

Her yöntem tamamen aynı sonucu verir, ancak temel R yöntemi, büyük veri çerçeveleriyle çalışırken önemli ölçüde daha yavaş olma eğilimindedir.

Aşağıdaki örnekler, bu yöntemlerin her birinin pratikte aşağıdaki veri çerçevesiyle nasıl kullanılacağını gösterir:

 #create data frame
df <- data. frame (team=c('A', 'A', 'A', 'A', 'B', 'B', 'C', 'C', 'C'),
                 points=c(10, 10, 14, 14, 18, 19, 20, 20, 20))

#view data frame
df

  team points
1 to 10
2 to 10
3 to 14
4 to 14
5 B 18
6 B 19
7 C 20
8 C 20
9 C 20

Yöntem 1: Temel R’yi kullanarak benzersiz değerleri gruba göre sayın

Aşağıdaki kod, R tabanını kullanarak her takım için farklı puan değerlerinin sayısının nasıl sayılacağını gösterir:

 #count unique points values by team
results <- aggregate(data=df, points~team, function (x) length ( unique (x)))

#view results
results

  team points
1 TO 2
2 B 2
3 C 1

Sonuçtan şunu görebiliriz:

  • A Takımı için 2 benzersiz puan değeri vardır.
  • B Takımı için 2 benzersiz puan değeri vardır.
  • C Takımı için 1 benzersiz puan değeri vardır.

Yöntem 2: dplyr kullanarak benzersiz değerleri gruba göre sayın

Aşağıdaki kod, dplyr kullanarak her takım için farklı puan değerlerinin sayısının nasıl sayılacağını gösterir:

 library (dplyr)

#count unique points values by team
results <- df %>%
  group_by(team) %>%
  summarize(count = n_distinct (points))

#view results
results

# A tibble: 3 x 2
  team count
1 TO 2
2 B 2
3 C 1

Bu sonuçların temel R yöntemiyle eşleştiğini unutmayın.

Yöntem 3: data.table’ı kullanarak benzersiz değerleri gruba göre sayın

Aşağıdaki kod, data.table kullanılarak her takım için farklı puan değerlerinin sayısının nasıl sayılacağını gösterir:

 library (data.table)

#convert data frame to data table
df <- data.table(df)

#count unique points values by team 
results <- df[, .(count = length ( unique (points))), by = team]

#view results
results

   team count
1 TO 2
2:B2
3: C 1

Bu sonuçların önceki iki yöntemin sonuçlarıyla eşleştiğini unutmayın.

Ek kaynaklar

Aşağıdaki eğitimlerde dplyr kullanılarak diğer yaygın işlemlerin nasıl gerçekleştirileceği açıklanmaktadır:

Dplyr kullanarak değerler nasıl yeniden kodlanır
Dplyr’de NA’yı Sıfır ile nasıl değiştirebilirim?
Dplyr kullanarak değişkenleri gruba göre sıralama
Dplyr kullanarak gruba göre ilk satır nasıl seçilir

Yorum ekle

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir