Câu trả lời:
Lấy hoặc đặt độ dài của vectơ (bao gồm cả danh sách) và thừa số, và của bất kỳ đối tượng R nào khác mà phương thức đã được xác định.
Lấy độ dài của mỗi phần tử của một danh sách hoặc vectơ nguyên tử (is.atomic) dưới dạng một số nguyên hoặc vectơ số.
Lời khuyên cho R
những người mới đến như tôi: hãy cẩn thận, sau đây là danh sách của một đối tượng duy nhất :
> mylist <- list (1:10)
> length (mylist)
[1] 1
Trong trường hợp này, bạn không tìm độ dài của danh sách mà tìm phần tử đầu tiên của nó:
> length (mylist[[1]])
[1] 10
Đây là danh sách "đúng":
> mylist <- list(1:10, rnorm(25), letters[1:3])
> length (mylist)
[1] 3
Ngoài ra, có vẻ như R
coi data.frame là một danh sách:
> df <- data.frame (matrix(0, ncol = 30, nrow = 2))
> typeof (df)
[1] "list"
Trong trường hợp như vậy, bạn có thể quan tâm ncol()
và nrow()
hơn là length()
:
> ncol (df)
[1] 30
> nrow (df)
[1] 2
Mặc dù length()
cũng sẽ hoạt động (nhưng đó là một mẹo khi data.frame của bạn chỉ có một cột):
> length (df)
[1] 30
> length (df[[1]])
[1] 2
Hãy tạo một danh sách trống (không bắt buộc, nhưng cần biết):
> mylist <- vector(mode="list")
Hãy đặt một số thứ vào đó - 3 thành phần / chỉ mục / thẻ (bất cứ thứ gì bạn muốn gọi nó), mỗi thành phần có số lượng phần tử khác nhau:
> mylist <- list(record1=c(1:10),record2=c(1:5),record3=c(1:2))
Nếu bạn chỉ quan tâm đến số lượng các thành phần trong một danh sách, hãy sử dụng:
> length(mylist)
[1] 3
Nếu bạn quan tâm đến độ dài của các phần tử trong một thành phần cụ thể của danh sách, hãy sử dụng: (cả hai đều tham chiếu cùng một thành phần tại đây)
length(mylist[[1]])
[1] 10
length(mylist[["record1"]]
[1] 10
Nếu bạn quan tâm đến độ dài của tất cả các phần tử trong tất cả các thành phần của danh sách, hãy sử dụng:
> sum(sapply(mylist,length))
[1] 17
Bạn cũng có thể sử dụng unlist()
, thường hữu ích để xử lý danh sách:
> 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 () là một cách đơn giản để thực thi các hàm khác trên danh sách, chẳng hạn như:
> sum(mylist)
Error in sum(mylist) : invalid 'type' (list) of argument
> sum(unlist(mylist))
[1] 45