Bir listeyi r'de veri çerçevesine dönüştürme


R’de bir listeyi veri çerçevesine dönüştürmek isteyebileceğiniz birçok durum vardır. Bu eğitimde bunu yapmanın üç farklı yolu açıklanmaktadır.

Yöntem 1: R tabanlı

Aşağıdaki kod parçacığı, yalnızca R tabanını kullanarak bir listenin veri çerçevesine nasıl dönüştürüleceğini gösterir:

 #create list
my_list <- list(letters[1:5], letters[6:10])
my_list

[[1]]
[1] "a" "b" "c" "d" "e"

[[2]]
[1] "f" "g" "h" "i" "j"

#convert list to data frame
data.frame(t(sapply(my_list,c)))

  X1 X2 X3 X4 X5
1 abcde
2 fghij

Bu örnekte sapply listeyi bir matrise dönüştürür, ardından data.frame matrisi bir veri çerçevesine dönüştürür. Sonuçta iki satırlı, beş sütunlu bir veri çerçevesi ortaya çıkar.

Yöntem 2: Veri Tablosu

Aşağıdaki kod parçacığı, data.table kitaplığının rbindlist işlevini kullanarak iç içe geçmiş iki listeden oluşan bir listenin, iki satır ve üç sütunlu bir veri çerçevesine nasıl dönüştürüleceğini gösterir:

 #load data.table library
library(data.table)

#create list
my_list <- list(a = list(var1 = 1, var2 = 2, var3 = 3),
                b = list(var1 = 4, var2 = 5, var3 = 6))
my_list 

$a
$a$var1
[1] 1

$a$var2
[1] 2

$a$var3
[1] 3

$b
$b$var1
[1] 4

$b$var2
[1] 5

$b$var3
[1] 6

#convert list to data frame
rbindlist(my_list)

   var1 var2 var3
1:1 2 3
2:4 5 6

Bunun sonucunda iki satır ve üç sütundan oluşan bir veri tablosu elde edilir. Bu veri tablosunu veri çerçevesine dönüştürmek istiyorsanız as.data.frame(DT) komutunu kullanabilirsiniz.

Bu yöntem, çok büyük bir veri kümesiyle çalışıyorsanız, listeyi önceki yönteme göre daha hızlı bir şekilde veri çerçevesine dönüştürür.

Yöntem 3: Dplyr

Aşağıdaki kod parçacığı, iç içe geçmiş iki listeden oluşan bir listenin, dplyr kütüphanesininbind_rows işlevini kullanarak iki satır ve üç sütunlu bir veri çerçevesine nasıl dönüştürüleceğini gösterir:

 #loadlibrary
library(dplyr)

#create list
my_list <- list(a = list(var1 = 1, var2 = 2, var3 = 3),
                b = list(var1 = 4, var2 = 5, var3 = 6))

my_list

$a
$a$var1
[1] 1

$a$var2
[1] 2

$a$var3
[1] 3


$b
$b$var1
[1] 4

$b$var2
[1] 5

$b$var3
[1] 6

#convert list to data frame
bind_rows(my_list)

# A tibble: 2 x 3
   var1 var2 var3
    
1 1 2 3
2 4 5 6

Bunun sonucunda iki satır ve üç sütundan oluşan bir veri çerçevesi elde edilir.

Bu yöntem aynı zamanda büyük veri kümeleriyle çalışırken temel R’den daha hızlı performans gösterme eğilimindedir.

Yorum ekle

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