นับจำนวนวัตถุในรายการ [ปิด]


99

R ฟังก์ชั่นที่จะส่งคืนจำนวนรายการในรายการ?

คำตอบ:


169

ความยาว (x)

รับหรือกำหนดความยาวของเวกเตอร์ (รวมถึงรายการ) และปัจจัยและของวัตถุ R อื่น ๆ ที่กำหนดวิธีการไว้

ความยาว (x)

รับความยาวของแต่ละองค์ประกอบของรายการหรือเวกเตอร์อะตอม (is.atomic) เป็นเวกเตอร์จำนวนเต็มหรือตัวเลข


85

คำแนะนำสำหรับRผู้มาใหม่เช่นฉันระวังสิ่งต่อไปนี้เป็นรายการของวัตถุชิ้นเดียว  :

> mylist <- list (1:10)
> length (mylist)
[1] 1

ในกรณีนี้คุณไม่ได้มองหาความยาวของรายการ แต่เป็นองค์ประกอบแรก:

> length (mylist[[1]])
[1] 10

นี่คือรายการ "จริง":

> mylist <- list(1:10, rnorm(25), letters[1:3])
> length (mylist)
[1] 3

นอกจากนี้ดูเหมือนว่าจะRพิจารณา data.frame เป็นรายการ:

> df <- data.frame (matrix(0, ncol = 30, nrow = 2))
> typeof (df)
[1] "list"

ในกรณีนี้คุณอาจสนใจncol()และnrow()มากกว่าlength() :

> ncol (df)
[1] 30
> nrow (df)
[1] 2

แม้ว่าlength()จะใช้งานได้ (แต่เป็นเคล็ดลับเมื่อ data.frame ของคุณมีเพียงคอลัมน์เดียว):

> length (df)
[1] 30
> length (df[[1]])
[1] 2

12

ฉันใช้เวลาหลายปีในการพยายามคิดออก แต่มันง่ายมาก! คุณสามารถใช้length(·). length(mylist)จะบอกคุณจำนวนวัตถุmylistมี

... และเพิ่งรู้ว่ามีคนตอบไปแล้ว - ขออภัย!


10

มาสร้างรายการว่าง (ไม่จำเป็น แต่น่ารู้):

> mylist <- vector(mode="list")

มาใส่บางสิ่งลงไป - 3 องค์ประกอบ / ดัชนี / แท็ก (อะไรก็ได้ที่คุณต้องการเรียกมัน) แต่ละองค์ประกอบมีจำนวนองค์ประกอบที่แตกต่างกัน:

> mylist <- list(record1=c(1:10),record2=c(1:5),record3=c(1:2))

หากคุณสนใจเพียงจำนวนส่วนประกอบในรายการให้ใช้:

> length(mylist)
[1] 3

หากคุณสนใจเกี่ยวกับความยาวขององค์ประกอบในองค์ประกอบเฉพาะของรายการให้ใช้: (ทั้งคู่อ้างอิงส่วนประกอบเดียวกันที่นี่)

length(mylist[[1]])
[1] 10
length(mylist[["record1"]]
[1] 10

หากคุณสนใจเกี่ยวกับความยาวขององค์ประกอบทั้งหมดในส่วนประกอบทั้งหมดของรายการให้ใช้:

> sum(sapply(mylist,length))
[1] 17

7

คุณยังสามารถใช้unlist()ซึ่งมักมีประโยชน์ในการจัดการรายการ:

> 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

unsist () เป็นวิธีง่ายๆในการเรียกใช้ฟังก์ชันอื่น ๆ ในรายการเช่น:

> sum(mylist)
Error in sum(mylist) : invalid 'type' (list) of argument

> sum(unlist(mylist))
[1] 45
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.