सूची में वस्तुओं की संख्या [बंद]


99

वह फ़ंक्शन जो किसी सूची में आइटम की संख्या लौटाएगा?

जवाबों:


170

लंबाई (एक्स)

वैक्टर (सूचियों सहित) और कारकों, और किसी अन्य आर ऑब्जेक्ट की लंबाई निर्धारित करें या सेट करें जिसके लिए एक विधि परिभाषित की गई है।

लंबाई (एक्स)

एक पूर्णांक या संख्यात्मक वेक्टर के रूप में एक सूची या परमाणु वेक्टर (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()यह भी काम करेगा (लेकिन यह एक चाल है जब आपके डेटा.फ्रेम में केवल एक कॉलम होता है):

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

12

मैंने उम्र बिताने की कोशिश की, लेकिन यह आसान है! आप उपयोग कर सकते हैं length(·)length(mylist)आपको बताएगा कि वस्तुओं की संख्या mylistकितनी है।

... और बस एहसास हुआ कि किसी ने पहले ही इसका जवाब दे दिया था- सॉरी!


9

आइए एक खाली सूची बनाएं (आवश्यक नहीं, लेकिन जानना अच्छा है):

> 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

अनलिस्ट () सूचियों पर अन्य कार्यों को निष्पादित करने का एक सरल तरीका है, जैसे:

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

> sum(unlist(mylist))
[1] 45
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.