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.