การอ่านเพียงสองในสามคอลัมน์ด้วย read.csv


12

ฉันมีชุดข้อมูล ascii ซึ่งประกอบด้วยสามคอลัมน์ แต่มีเพียงสองชุดสุดท้ายเท่านั้นที่เป็นข้อมูลจริง ตอนนี้ผมต้องการที่จะสร้าง dotchart read.csv(file = "result1", sep= " ")ของข้อมูลโดยใช้ R อ่านทั้งสามคอลัมน์ ฉันจะหลีกเลี่ยงสิ่งนี้ได้อย่างไร


5
ฉันจะออกจากที่นี่ แต่โปรดถามคำถาม R พื้นฐานในอนาคตเกี่ยวกับStackOverflow

ที่จริงแล้วฉันทามติในปัจจุบันดูเหมือนว่าจะยินดีต้อนรับคำถาม R ใน CV ฉันไม่สามารถหาการอภิปรายในขณะนี้ แต่มันเป็นหนึ่งในmeta.stats.stackexchange.com
Waldir Leoncio

คำตอบ:


20

คุณสามารถใช้colClassesอาร์กิวเมนต์read.csvเพื่อเลือกคอลัมน์ที่คุณต้องการ ในกรณีนี้คุณสามารถตั้งค่าcolClassesเป็นc("NULL", NA, NA)

read.csv(file="result1", sep=" ", colClasses=c("NULL", NA, NA))

โดยทั่วไปคุณสามารถใช้ colClasses เพื่อระบุประเภทคอลัมน์เฉพาะ NAหมายถึงการใช้วิธีการเริ่มต้นซึ่งจะพยายามและคิดออกว่าคอลัมน์คืออะไรโดยอัตโนมัติ ดูหน้าช่วยเหลือread.csvสำหรับรายละเอียดเพิ่มเติม


11

อีกทางเลือกหนึ่งคือการอ่านในไฟล์ทั้งหมด แต่เก็บไว้เพียงสองคอลัมน์เท่านั้นเช่น:

read.csv(file = "result1", sep = " ")[ ,1:2]

หรือใช้ชื่อคอลัมน์เช่น ถ้าคอลัมน์มีชื่อว่า 'col1, col2, col3'

read.csv(file = "result1", sep = " ")[ ,c('col1', 'col2')]

คำตอบโดย @Brian ใช้เวลาน้อยลงเมื่อเทียบกับของคุณ
Haroon Rashid

0

สิ่งนี้ใช้เวลาน้อยลงเมื่อเทียบกับคำตอบที่ให้ไว้

library(data.table)
fread(file="result1", sep=" ", colClasses=c("NULL", NA, NA))
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.