Bir listedeki öğe sayısını döndürecek R işlevi?
Yanıtlar:
Vektörlerin (listeler dahil) ve faktörlerin ve bir yöntemin tanımlandığı diğer herhangi bir R nesnesinin uzunluğunu alın veya ayarlayın.
Bir listenin veya atom vektörünün (is.atomic) her öğesinin uzunluğunu bir tamsayı veya sayısal vektör olarak alın.
R
Benim gibi yeni başlayanlar için tavsiyeler : Dikkat edin, aşağıdaki tek bir nesnenin listesi :
> mylist <- list (1:10)
> length (mylist)
[1] 1
Böyle bir durumda listenin uzunluğunu değil, ilk unsurunu arıyorsunuz:
> length (mylist[[1]])
[1] 10
Bu "doğru" bir listedir:
> mylist <- list(1:10, rnorm(25), letters[1:3])
> length (mylist)
[1] 3
Ayrıca, R
bir data.frame'i bir liste olarak kabul ediyor gibi görünüyor :
> df <- data.frame (matrix(0, ncol = 30, nrow = 2))
> typeof (df)
[1] "list"
Böyle bir durumda size ilginizi çekebilir ncol()
ve nrow()
yerine length()
:
> ncol (df)
[1] 30
> nrow (df)
[1] 2
Yine length()
de işe yarayacak (ancak data.frame'inizde yalnızca bir sütun olduğunda bu bir numara):
> length (df)
[1] 30
> length (df[[1]])
[1] 2
Boş bir liste oluşturalım (gerekli değil, ancak bilmekte fayda var):
> mylist <- vector(mode="list")
İçine bir şeyler koyalım - her biri farklı miktarlarda öğelere sahip 3 bileşen / dizin / etiket (ne demek isterseniz):
> mylist <- list(record1=c(1:10),record2=c(1:5),record3=c(1:2))
Bir listedeki bileşenlerin sayısı ile ilgileniyorsanız şunları kullanın:
> length(mylist)
[1] 3
Bir listenin belirli bir bileşenindeki elemanların uzunluğuyla ilgileniyorsanız şunu kullanın: (burada her ikisi de aynı bileşene atıfta bulunur)
length(mylist[[1]])
[1] 10
length(mylist[["record1"]]
[1] 10
Listenin tüm bileşenlerindeki tüm öğelerin uzunluğuyla ilgileniyorsanız şunu kullanın:
> sum(sapply(mylist,length))
[1] 17
unlist()
Listeleri işlemek için genellikle yararlı olan şunu da kullanabilirsiniz :
> mylist <- list(A = c(1:3), B = c(4:6), C = c(7:9))
> mylist
$A
[1] 1 2 3
$B
[1] 4 5 6
$C
[1] 7 8 9
> unlist(mylist)
A1 A2 A3 B1 B2 B3 C1 C2 C3
1 2 3 4 5 6 7 8 9
> length(unlist(mylist))
[1] 9
unlist (), listelerde diğer işlevleri de çalıştırmanın basit bir yoludur, örneğin:
> sum(mylist)
Error in sum(mylist) : invalid 'type' (list) of argument
> sum(unlist(mylist))
[1] 45