ฉันจะรับจำนวนแถวของ data.frame ใน R ได้อย่างไร [ปิด]


157

หลังจากอ่านชุดข้อมูลแล้ว:

dataset <- read.csv("forR.csv")
  • ฉันจะได้รับ R เพื่อให้จำนวนกรณีมันมี?
  • นอกจากนี้ค่าที่ส่งคืนจะรวมถึงกรณียกเว้นที่ไม่รวมด้วยna.omit(dataset)หรือไม่

1
ฉันขอแนะนำให้ดูที่str()มันให้รายละเอียดที่เป็นประโยชน์อื่น ๆ เกี่ยวกับวัตถุของคุณ มักจะสามารถอธิบายได้ว่าทำไมคอลัมน์จึงไม่ทำงานตามที่ควร (ปัจจัยแทนตัวเลข ฯลฯ )
Chase

3
โปรดอ่านคู่มือ R ของโอเว่นครั้งแรก ( cran.r-project.org/doc/contrib/Owen-TheRGuide.pdf ) และถ้าเป็นไปได้แนะนำให้รู้จักกับ R ( cran.r-project.org/doc/manuals/R- intro.pdf ) ทั้งคู่อยู่ในเว็บไซต์ทางการของอาร์คุณโชคดีมากที่ได้รับคำตอบจริง ๆ ในรายการ r-help คุณจะเปลี่ยนเส้นทางไปยังคู่มือด้วยคำศัพท์ที่หรูหราน้อยกว่า ไม่มีความผิดหมายถึง
Joris Meys

11
@Joris - นำจุด (ไม่มีความผิด) แต่ก็เป็นความประทับใจของฉันที่เว็บไซต์ SE ได้รับการออกแบบเพื่อส่งเสริมการเรียนรู้ปัญหา / การแก้ปัญหาในวิธีที่ไม่ได้โดยคู่มือ นอกจากนี้คำถามนี้จะพร้อมใช้งานสำหรับผู้เริ่มต้นอื่น ๆ ขอบคุณสำหรับลิงค์แม้ว่า
Tom Wright

2
ฉันไม่เห็นด้วยกับการยืนยันของคุณว่าคำถามนี้จะเป็นประโยชน์สำหรับผู้เริ่มต้นอื่น ๆโดยเฉพาะอย่างยิ่งหากพวกเขาไม่ได้อ่านคู่มือ พวกเขาจะสร้างคำถามซ้ำ
Joshua Ulrich

6
และสี่ปีต่อมานี่เป็นครั้งที่สองที่ฉันได้รับจาก Google และพยายามค้นหาคำตอบสำหรับคำถามนี้ ไม่ต้องการให้ฉันสร้างซ้ำ (@JoshuaUlrich)
Richard

คำตอบ:


173

datasetจะเป็นกรอบข้อมูล เนื่องจากฉันไม่มีforR.csvฉันจะสร้างกรอบข้อมูลขนาดเล็กสำหรับประกอบภาพประกอบ:

set.seed(1)
dataset <- data.frame(A = sample(c(NA, 1:100), 1000, rep = TRUE),
                      B = rnorm(1000))

> head(dataset)
   A           B
1 26  0.07730312
2 37 -0.29686864
3 57 -1.18324224
4 91  0.01129269
5 20  0.99160104
6 90  1.59396745

ในการรับจำนวนเคสให้นับจำนวนแถวโดยใช้nrow()หรือNROW():

> nrow(dataset)
[1] 1000
> NROW(dataset)
[1] 1000

หากต้องการนับข้อมูลหลังจากไม่NAใช้งานให้ใช้เครื่องมือเดียวกัน แต่ใส่datasetในna.omit():

> NROW(na.omit(dataset))
[1] 993

ความแตกต่างระหว่างNROW()และNCOL()กับตัวแปรตัวพิมพ์เล็ก ( ncol()และnrow()) คือเวอร์ชันตัวพิมพ์เล็กจะทำงานกับวัตถุที่มีมิติ (อาร์เรย์เมทริกซ์เฟรมข้อมูล) เท่านั้น เวอร์ชันตัวพิมพ์ใหญ่จะทำงานกับเวกเตอร์ซึ่งถือว่าเป็นเมทริกซ์คอลัมน์ 1 และจะมีประสิทธิภาพหากคุณสิ้นสุดการเซ็ตอัพข้อมูลของคุณเช่นนั้น R จะปล่อยมิติที่ว่างเปล่า

หรือใช้complete.cases()และsumมัน ( complete.cases()ผลตอบแทนเวกเตอร์ตรรกะ [ TRUEหรือFALSE] ระบุถ้าสังเกตใด ๆNAสำหรับแถวใด ๆ

> sum(complete.cases(dataset))
[1] 993

36

สั้น ๆ :

  1. เรียกใช้dim(dataset)เพื่อดึงทั้งnและkคุณยังสามารถใช้nrow(df)และncol(df)(และแม้NROW(df)และNCOL(df)- ตัวแปรจำเป็นสำหรับประเภทอื่นด้วย)

  2. หากคุณแปลงเช่นผ่านdataset <- na.omit(dataset)กรณีจะหายไปและจะไม่ถูกนับ แต่ถ้าคุณทำเช่น summary(dataset)กรณี NA มีการพิจารณา

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