R - Listeler

Listeler, sayılar, dizeler, vektörler ve içindeki başka bir liste gibi farklı türdeki öğeleri içeren R nesneleridir. Bir liste, öğeleri olarak bir matris veya bir işlev de içerebilir. Liste kullanılarak oluşturulurlist() işlevi.

Liste Oluşturmak

Aşağıda, dizeler, sayılar, vektörler ve mantıksal değerler içeren bir liste oluşturmak için bir örnek verilmiştir.

# Create a list containing strings, numbers, vectors and a logical
# values.
list_data <- list("Red", "Green", c(21,32,11), TRUE, 51.23, 119.1)
print(list_data)

Yukarıdaki kodu çalıştırdığımızda şu sonucu verir -

[[1]]
[1] "Red"

[[2]]
[1] "Green"

[[3]]
[1] 21 32 11

[[4]]
[1] TRUE

[[5]]
[1] 51.23

[[6]]
[1] 119.1

Liste Öğelerini Adlandırma

Liste elemanlarına isim verilebilir ve bu isimler kullanılarak erişilebilirler.

# Create a list containing a vector, a matrix and a list.
list_data <- list(c("Jan","Feb","Mar"), matrix(c(3,9,5,1,-2,8), nrow = 2),
   list("green",12.3))

# Give names to the elements in the list.
names(list_data) <- c("1st Quarter", "A_Matrix", "A Inner list")

# Show the list.
print(list_data)

Yukarıdaki kodu çalıştırdığımızda şu sonucu verir -

$`1st_Quarter` [1] "Jan" "Feb" "Mar" $A_Matrix
     [,1] [,2] [,3]
[1,]    3    5   -2
[2,]    9    1    8

$A_Inner_list $A_Inner_list[[1]]
[1] "green"

$A_Inner_list[[2]]
[1] 12.3

Liste Öğelerine Erişim

Listenin elemanlarına listedeki elemanın indeksi ile erişilebilir. İsimlendirilmiş listeler olması durumunda isimler kullanılarak da erişilebilir.

Yukarıdaki örnekteki listeyi kullanmaya devam ediyoruz -

# Create a list containing a vector, a matrix and a list.
list_data <- list(c("Jan","Feb","Mar"), matrix(c(3,9,5,1,-2,8), nrow = 2),
   list("green",12.3))

# Give names to the elements in the list.
names(list_data) <- c("1st Quarter", "A_Matrix", "A Inner list")

# Access the first element of the list.
print(list_data[1])

# Access the thrid element. As it is also a list, all its elements will be printed.
print(list_data[3])

# Access the list element using the name of the element.
print(list_data$A_Matrix)

Yukarıdaki kodu çalıştırdığımızda şu sonucu verir -

$`1st_Quarter` [1] "Jan" "Feb" "Mar" $A_Inner_list
$A_Inner_list[[1]] [1] "green" $A_Inner_list[[2]]
[1] 12.3

     [,1] [,2] [,3]
[1,]    3    5   -2
[2,]    9    1    8

Liste Öğelerini Değiştirme

Liste öğelerini aşağıda gösterildiği gibi ekleyebilir, silebilir ve güncelleyebiliriz. Öğeleri yalnızca bir listenin sonuna ekleyebilir ve silebiliriz. Ancak herhangi bir öğeyi güncelleyebiliriz.

# Create a list containing a vector, a matrix and a list.
list_data <- list(c("Jan","Feb","Mar"), matrix(c(3,9,5,1,-2,8), nrow = 2),
   list("green",12.3))

# Give names to the elements in the list.
names(list_data) <- c("1st Quarter", "A_Matrix", "A Inner list")

# Add element at the end of the list.
list_data[4] <- "New element"
print(list_data[4])

# Remove the last element.
list_data[4] <- NULL

# Print the 4th Element.
print(list_data[4])

# Update the 3rd Element.
list_data[3] <- "updated element"
print(list_data[3])

Yukarıdaki kodu çalıştırdığımızda şu sonucu verir -

[[1]]
[1] "New element"

$<NA> NULL $`A Inner list`
[1] "updated element"

Listeleri Birleştirme

Tüm listeleri bir list () işlevi içine yerleştirerek birçok listeyi tek bir listede birleştirebilirsiniz.

# Create two lists.
list1 <- list(1,2,3)
list2 <- list("Sun","Mon","Tue")

# Merge the two lists.
merged.list <- c(list1,list2)

# Print the merged list.
print(merged.list)

Yukarıdaki kodu çalıştırdığımızda şu sonucu verir -

[[1]]
[1] 1

[[2]]
[1] 2

[[3]]
[1] 3

[[4]]
[1] "Sun"

[[5]]
[1] "Mon"

[[6]]
[1] "Tue"

Listeyi Vektöre Dönüştürme

Bir liste bir vektöre dönüştürülebilir, böylece vektörün öğeleri daha fazla manipülasyon için kullanılabilir. Liste vektöre dönüştürüldükten sonra vektörler üzerindeki tüm aritmetik işlemler uygulanabilir. Bu dönüşümü yapmak için,unlist()işlevi. Listeyi girdi olarak alır ve bir vektör üretir.

# Create lists.
list1 <- list(1:5)
print(list1)

list2 <-list(10:14)
print(list2)

# Convert the lists to vectors.
v1 <- unlist(list1)
v2 <- unlist(list2)

print(v1)
print(v2)

# Now add the vectors
result <- v1+v2
print(result)

Yukarıdaki kodu çalıştırdığımızda şu sonucu verir -

[[1]]
[1] 1 2 3 4 5

[[1]]
[1] 10 11 12 13 14

[1] 1 2 3 4 5
[1] 10 11 12 13 14
[1] 11 13 15 17 19